- added esri-leaflet definitions base

- definitions for BasemapLayer and TiledMapLayer
This commit is contained in:
strajuser
2017-07-03 10:12:12 +03:00
parent ae6459f44a
commit eefba54205
4 changed files with 212 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
import L = require('esri-leaflet');
let basemapLayer: L.esri.BasemapLayer;
basemapLayer = L.esri.basemapLayer('Streets');
basemapLayer = L.esri.basemapLayer('Topographic');
basemapLayer = L.esri.basemapLayer('NationalGeographic');
basemapLayer = L.esri.basemapLayer('Oceans');
basemapLayer = L.esri.basemapLayer('Gray');
basemapLayer = L.esri.basemapLayer('DarkGray');
basemapLayer = L.esri.basemapLayer('Imagery');
basemapLayer = L.esri.basemapLayer('ShadedRelief');
basemapLayer = L.esri.basemapLayer('Terrain');
basemapLayer = L.esri.basemapLayer('USATopo');
basemapLayer = L.esri.basemapLayer('OceansLabels');
basemapLayer = L.esri.basemapLayer('GrayLabels');
basemapLayer = L.esri.basemapLayer('DarkGrayLabels');
basemapLayer = L.esri.basemapLayer('ImageryLabels');
basemapLayer = L.esri.basemapLayer('ImageryTransportation');
basemapLayer = L.esri.basemapLayer('ShadedReliefLabels');
basemapLayer = L.esri.basemapLayer('TerrainLabels');
// should be an error
// basemapLayer = L.esri.basemapLayer('Test');
basemapLayer = new L.esri.BasemapLayer('Streets');
basemapLayer = new L.esri.BasemapLayer('Topographic');
basemapLayer = new L.esri.BasemapLayer('NationalGeographic');
basemapLayer = new L.esri.BasemapLayer('Oceans');
basemapLayer = new L.esri.BasemapLayer('Gray');
basemapLayer = new L.esri.BasemapLayer('DarkGray');
basemapLayer = new L.esri.BasemapLayer('Imagery');
basemapLayer = new L.esri.BasemapLayer('ShadedRelief');
basemapLayer = new L.esri.BasemapLayer('Terrain');
basemapLayer = new L.esri.BasemapLayer('USATopo');
basemapLayer = new L.esri.BasemapLayer('OceansLabels');
basemapLayer = new L.esri.BasemapLayer('GrayLabels');
basemapLayer = new L.esri.BasemapLayer('DarkGrayLabels');
basemapLayer = new L.esri.BasemapLayer('ImageryLabels');
basemapLayer = new L.esri.BasemapLayer('ImageryTransportation');
basemapLayer = new L.esri.BasemapLayer('ShadedReliefLabels');
basemapLayer = new L.esri.BasemapLayer('TerrainLabels');
// should be an error
// basemapLayer = new L.esri.BasemapLayer('Test');
basemapLayer = L.esri.basemapLayer('Streets', { token: 'token' });
basemapLayer = new L.esri.BasemapLayer('Streets', { token: 'token' });

141
types/esri-leaflet/index.d.ts vendored Normal file
View File

@@ -0,0 +1,141 @@
// Type definitions for esri-leaflet 2.0
// Project: http://esri.github.io/esri-leaflet
// Definitions by: strajuser <https://github.com/strajuser>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/// <reference types="leaflet" />
declare namespace L {
namespace esri {
type CallbackHandlerFn = (error: any, metadata: any) => void;
type Basemaps =
'Streets'
| 'Topographic'
| 'NationalGeographic'
| 'Oceans'
| 'Gray'
| 'DarkGray'
| 'Imagery'
| 'ShadedRelief'
| 'Terrain'
| 'USATopo'
| 'OceansLabels'
| 'GrayLabels'
| 'DarkGrayLabels'
| 'ImageryLabels'
| 'ImageryTransportation'
| 'ShadedReliefLabels'
| 'TerrainLabels';
interface BasemapLayerOptions extends L.TileLayerOptions {
/**
* Will use this token to authenticate all calls to the service.
*
* @type {string}
* @memberof BasemapLayerOptions
*/
token?: string;
}
/**
* L.esri.BasemapLayer is used to display Esri hosted basemaps and attributes data providers appropriately. The Terms of Use for Esri hosted services apply to all Leaflet applications.
*
* @class BasemapLayer
* @extends {L.TileLayer}
*/
class BasemapLayer extends L.TileLayer {
constructor(key: Basemaps, options?: BasemapLayerOptions);
}
/**
* L.esri.basemapLayer is used to display Esri hosted basemaps and attributes data providers appropriately. The Terms of Use for Esri hosted services apply to all Leaflet applications.
*
* @param {Basemaps} key
* @param {BasemapLayerOptions} [options]
* @returns {BasemapLayer}
*/
function basemapLayer(key: Basemaps, options?: BasemapLayerOptions): BasemapLayer;
interface EsriTileLayerOptions extends L.TileLayerOptions {
/**
* URL of the Map Service with a tile cache.
*
* @type {string}
* @memberof EsriTileLayerOptions
*/
url: string;
/**
* If correctZoomLevels is enabled this controls the amount of tolerance for the difference at each scale level for remapping tile levels.
* Default 0.1
*
* @type {number}
* @memberof EsriTileLayerOptions
*/
zoomOffsetAllowance?: number;
/**
* URL of an ArcGIS API for JavaScript proxy or ArcGIS Resource Proxy to use for proxying requests.
*
* @type {string}
* @memberof EsriTileLayerOptions
*/
proxy?: string;
/**
* Dictates if the service should use CORS when making GET requests.
*
* @type {boolean}
* @memberof EsriTileLayerOptions
*/
userCors?: boolean;
/**
* Will use this token to authenticate all calls to the service.
*
* @type {string}
* @memberof EsriTileLayerOptions
*/
token?: string;
}
/**
* Access tiles from ArcGIS Online and ArcGIS Server to visualize and identify features. Copyright text from the service is added to map attribution automatically.
*
* @class TiledMapLayer
* @extends {L.TileLayer}
*/
class TiledMapLayer extends L.TileLayer {
constructor(options: EsriTileLayerOptions);
/**
* Authenticates this service with a new token and runs any pending requests that required a token.
*
* @param {string} token
* @returns {this}
* @memberof TiledMapLayer
*/
authenticate(token: string): this;
/**
* Requests metadata about this Feature Layer. Callback will be called with error and metadata.
*
* @param {CallbackHandlerFn} callback
* @param {*} context
* @returns {this}
* @memberof TiledMapLayer
*/
metadata(callback: CallbackHandlerFn, context: any): this;
identify() : any;
find(): any;
query(): any;
}
/**
* Access tiles from ArcGIS Online and ArcGIS Server to visualize and identify features. Copyright text from the service is added to map attribution automatically.
*
* @param {EsriTileLayerOptions} options
* @returns {TiledMapLayer}
*/
function tiledMapLayer(options: EsriTileLayerOptions): TiledMapLayer;
}
}
declare module 'esri-leaflet' {
export = L;
}

View File

@@ -0,0 +1,22 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"esri-leaflet-tests.ts"
]
}

View File

@@ -0,0 +1 @@
{ "extends": "dtslint/dt.json" }