diff --git a/dist/esri-leaflet.js b/dist/esri-leaflet.js new file mode 100644 index 000000000..93d12129c --- /dev/null +++ b/dist/esri-leaflet.js @@ -0,0 +1,6 @@ +/*! esri-leaflet - v2.0.0-beta.3 - Sun Jul 19 2015 +* Copyright (c) 2015 Environmental Systems Research Institute, Inc. +* Apache-2.0 */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.L.esri={})}(this,function(t){"use strict";function e(t,e){for(var i=0;i<t.length;i++)if(t[i]!==e[i])return!1;return!0}function i(t){return e(t[0],t[t.length-1])||t.push(t[0]),t}function s(t){var e,i=0,s=0,r=t.length,o=t[s];for(s;r-1>s;s++)e=t[s+1],i+=(e[0]-o[0])*(e[1]+o[1]),o=e;return i>=0}function r(t,e,i,s){var r=(s[0]-i[0])*(t[1]-i[1])-(s[1]-i[1])*(t[0]-i[0]),o=(e[0]-t[0])*(t[1]-i[1])-(e[1]-t[1])*(t[0]-i[0]),n=(s[1]-i[1])*(e[0]-t[0])-(s[0]-i[0])*(e[1]-t[1]);if(0!==n){var a=r/n,l=o/n;if(a>=0&&1>=a&&l>=0&&1>=l)return!0}return!1}function o(t,e){for(var i=0;i<t.length-1;i++)for(var s=0;s<e.length-1;s++)if(r(t[i],t[i+1],e[s],e[s+1]))return!0;return!1}function n(t,e){for(var i=!1,s=-1,r=t.length,o=r-1;++s<r;o=s)(t[s][1]<=e[1]&&e[1]<t[o][1]||t[o][1]<=e[1]&&e[1]<t[s][1])&&e[0]<(t[o][0]-t[s][0])*(e[1]-t[s][1])/(t[o][1]-t[s][1])+t[s][0]&&(i=!i);return i}function a(t,e){var i=o(t,e),s=n(t,e[0]);return!i&&s?!0:!1}function l(t){for(var e,r,n,l=[],u=[],h=0;h<t.length;h++){var c=i(t[h].slice(0));if(!(c.length<4))if(s(c)){var p=[c];l.push(p)}else u.push(c)}for(var d=[];u.length;){n=u.pop();var m=!1;for(e=l.length-1;e>=0;e--)if(r=l[e][0],a(r,n)){l[e].push(n),m=!0;break}m||d.push(n)}for(;d.length;){n=d.pop();var f=!1;for(e=l.length-1;e>=0;e--)if(r=l[e][0],o(r,n)){l[e].push(n),f=!0;break}f||l.push([n.reverse()])}return 1===l.length?{type:"Polygon",coordinates:l[0]}:{type:"MultiPolygon",coordinates:l}}function u(t){var e=[],r=t.slice(0),o=i(r.shift().slice(0));if(o.length>=4){s(o)||o.reverse(),e.push(o);for(var n=0;n<r.length;n++){var a=i(r[n].slice(0));a.length>=4&&(s(a)&&a.reverse(),e.push(a))}}return e}function h(t){for(var e=[],i=0;i<t.length;i++)for(var s=u(t[i]),r=s.length-1;r>=0;r--){var o=s[r].slice(0);e.push(o)}return e}function c(t){var e={};for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e}function p(t){var e=L.latLng(t.ymin,t.xmin),i=L.latLng(t.ymax,t.xmax);return new L.LatLngBounds(e,i)}function d(t){return t=L.latLngBounds(t),{xmin:t.getSouthWest().lng,ymin:t.getSouthWest().lat,xmax:t.getNorthEast().lng,ymax:t.getNorthEast().lat,spatialReference:{wkid:4326}}}function m(t,e){var i={};return"number"==typeof t.x&&"number"==typeof t.y&&(i.type="Point",i.coordinates=[t.x,t.y]),t.points&&(i.type="MultiPoint",i.coordinates=t.points.slice(0)),t.paths&&(1===t.paths.length?(i.type="LineString",i.coordinates=t.paths[0].slice(0)):(i.type="MultiLineString",i.coordinates=t.paths.slice(0))),t.rings&&(i=l(t.rings.slice(0))),(t.geometry||t.attributes)&&(i.type="Feature",i.geometry=t.geometry?m(t.geometry):null,i.properties=t.attributes?c(t.attributes):null,t.attributes&&(i.id=t.attributes[e]||t.attributes.OBJECTID||t.attributes.FID)),i}function f(t,e){e=e||"OBJECTID";var i,s={wkid:4326},r={};switch(t.type){case"Point":r.x=t.coordinates[0],r.y=t.coordinates[1],r.spatialReference=s;break;case"MultiPoint":r.points=t.coordinates.slice(0),r.spatialReference=s;break;case"LineString":r.paths=[t.coordinates.slice(0)],r.spatialReference=s;break;case"MultiLineString":r.paths=t.coordinates.slice(0),r.spatialReference=s;break;case"Polygon":r.rings=u(t.coordinates.slice(0)),r.spatialReference=s;break;case"MultiPolygon":r.rings=h(t.coordinates.slice(0)),r.spatialReference=s;break;case"Feature":t.geometry&&(r.geometry=f(t.geometry,e)),r.attributes=t.properties?c(t.properties):{},t.id&&(r.attributes[e]=t.id);break;case"FeatureCollection":for(r=[],i=0;i<t.features.length;i++)r.push(f(t.features[i],e));break;case"GeometryCollection":for(r=[],i=0;i<t.geometries.length;i++)r.push(f(t.geometries[i],e))}return r}function y(t,e){var i;if(e)i=e;else if(t.objectIdFieldName)i=t.objectIdFieldName;else if(t.fields){for(var s=0;s<=t.fields.length-1;s++)if("esriFieldTypeOID"===t.fields[s].type){i=t.fields[s].name;break}}else i="OBJECTID";var r={type:"FeatureCollection",features:[]},o=t.features||t.results;if(o.length)for(var n=o.length-1;n>=0;n--)r.features.push(m(o[n],i));return r}function g(t){return t=L.Util.trim(t),"/"!==t[t.length-1]&&(t+="/"),t}function _(t){return/\.arcgis\.com.*?FeatureServer/g.test(t)}function v(t){var e;switch(t){case"Point":e="esriGeometryPoint";break;case"MultiPoint":e="esriGeometryMultipoint";break;case"LineString":e="esriGeometryPolyline";break;case"MultiLineString":e="esriGeometryPolyline";break;case"Polygon":e="esriGeometryPolygon";break;case"MultiPolygon":e="esriGeometryPolygon"}return e}function b(){console&&console.warn&&console.warn.apply(console,arguments)}function x(t){var e="";t.f=t.f||"json";for(var i in t)if(t.hasOwnProperty(i)){var s,r=t[i],o=Object.prototype.toString.call(r);e.length&&(e+="&"),s="[object Array]"===o?"[object Object]"===Object.prototype.toString.call(r[0])?JSON.stringify(r):r.join(","):"[object Object]"===o?JSON.stringify(r):"[object Date]"===o?r.valueOf():r,e+=encodeURIComponent(i)+"="+encodeURIComponent(s)}return e}function S(t,e){var i=new window.XMLHttpRequest;return i.onerror=function(s){i.onreadystatechange=L.Util.falseFn,t.call(e,{error:{code:500,message:"XMLHttpRequest error"}},null)},i.onreadystatechange=function(){var s,r;if(4===i.readyState){try{s=JSON.parse(i.responseText)}catch(o){s=null,r={code:500,message:"Could not parse response as JSON. This could also be caused by a CORS or XMLHttpRequest error."}}!r&&s.error&&(r=s.error,s=null),i.onerror=L.Util.falseFn,t.call(e,r,s)}},i}function T(t,e,i,s){var r=S(i,s);return r.open("POST",t),r.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),r.send(x(e)),r}function I(t,e,i,s){var r=S(i,s);return r.open("GET",t+"?"+x(e),!0),r.send(null),r}function w(t,e,i,s){var r=x(e),o=S(i,s),n=(t+"?"+r).length;if(2e3>=n&&Q.cors)o.open("GET",t+"?"+r),o.send(null);else{if(!(n>2e3&&Q.cors))return 2e3>=n&&!Q.cors?R(t,e,i,s):void b("a request to "+t+" was longer then 2000 characters and this browser cannot make a cross-domain post request. Please use a proxy http://esri.github.io/esri-leaflet/api-reference/request.html");o.open("POST",t),o.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),o.send(r)}return o}function R(t,e,i,s){var r="c"+H;e.callback="window._EsriLeafletCallbacks."+r;var o=L.DomUtil.create("script",null,document.body);return o.type="text/javascript",o.src=t+"?"+x(e),o.id=r,window._EsriLeafletCallbacks[r]=function(t){if(window._EsriLeafletCallbacks[r]!==!0){var e,o=Object.prototype.toString.call(t);"[object Object]"!==o&&"[object Array]"!==o&&(e={error:{code:500,message:"Expected array or object as JSONP response"}},t=null),!e&&t.error&&(e=t,t=null),i.call(s,e,t),window._EsriLeafletCallbacks[r]=!0}},H++,{id:r,url:o.src,abort:function(){window._EsriLeafletCallbacks._callback[r]({code:0,message:"Request aborted."})}}}function P(t){return new $(t)}function F(t){return new Y(t)}function C(t){return new et(t)}function O(t){return new it(t)}function k(t){return new st(t)}function M(t){return new rt(t)}function q(t){return new ot(t)}function G(t){return new nt(t)}function E(t){return new at(t)}function A(t){return new lt(t)}function D(t){return new ut(t)}function j(t,e){return new ct(t,e)}function B(t,e){return new pt(t,e)}function U(t,e){return new mt(t,e)}function z(t,e){return new ft(t,e)}function Z(t){this.values=t||[]}function N(t){return new _t(t)}var W=window.XMLHttpRequest&&"withCredentials"in new window.XMLHttpRequest,J=""===document.documentElement.style.pointerEvents,Q={cors:W,pointerEvents:J};t.Support=Q;var V={shallowClone:c,warn:b,cleanUrl:g,isArcgisOnline:_,geojsonTypeToArcGIS:v,responseToFeatureCollection:y,geojsonToArcGIS:f,arcgisToGeojson:m,boundsToExtent:d,extentToBounds:p};t.Util=V;var H=0;window._EsriLeafletCallbacks={};var K=Q.cors?I:R;K.CORS=I,K.JSONP=R;var X={request:w,get:K,post:T};t.get=K,t.post=T,t.request=w;var $=L.Class.extend({options:{proxy:!1,useCors:W},generateSetter:function(t,e){return L.Util.bind(function(e){return this.params[t]=e,this},e)},initialize:function(t){if(t.request&&t.options?(this._service=t,L.Util.setOptions(this,t.options)):(L.Util.setOptions(this,t),this.options.url=g(t.url)),this.params=L.Util.extend({},this.params||{}),this.setters)for(var e in this.setters){var i=this.setters[e];this[e]=this.generateSetter(i,this)}},token:function(t){return this._service?this._service.authenticate(t):this.params.token=t,this},request:function(t,e){return this._service?this._service.request(this.path,this.params,t,e):this._request("request",this.path,this.params,t,e)},_request:function(t,e,i,s,r){var o=this.options.proxy?this.options.proxy+"?"+this.options.url+e:this.options.url+e;return"get"!==t&&"request"!==t||this.options.useCors?X[t](o,i,s,r):X.get.JSONP(o,i,s,r)}}),Y=$.extend({setters:{offset:"offset",limit:"limit",fields:"outFields",precision:"geometryPrecision",featureIds:"objectIds",returnGeometry:"returnGeometry",token:"token"},path:"query",params:{returnGeometry:!0,where:"1=1",outSr:4326,outFields:"*"},within:function(t){return this._setGeometry(t),this.params.spatialRel="esriSpatialRelContains",this},intersects:function(t){return this._setGeometry(t),this.params.spatialRel="esriSpatialRelIntersects",this},contains:function(t){return this._setGeometry(t),this.params.spatialRel="esriSpatialRelWithin",this},crosses:function(t){return this._setGeometry(t),this.params.spatialRel="esriSpatialRelCrosses",this},touches:function(t){return this._setGeometry(t),this.params.spatialRel="esriSpatialRelTouches",this},overlaps:function(t){return this._setGeometry(t),this.params.spatialRel="esriSpatialRelOverlaps",this},nearby:function(t,e){return t=L.latLng(t),this.params.geometry=[t.lng,t.lat],this.params.geometryType="esriGeometryPoint",this.params.spatialRel="esriSpatialRelIntersects",this.params.units="esriSRUnit_Meter",this.params.distance=e,this.params.inSr=4326,this},where:function(t){return this.params.where=t,this},between:function(t,e){return this.params.time=[t.valueOf(),e.valueOf()],this},simplify:function(t,e){var i=Math.abs(t.getBounds().getWest()-t.getBounds().getEast());return this.params.maxAllowableOffset=i/t.getSize().y*e,this},orderBy:function(t,e){return e=e||"ASC",this.params.orderByFields=this.params.orderByFields?this.params.orderByFields+",":"",this.params.orderByFields+=[t,e].join(" "),this},run:function(t,e){return this._cleanParams(),V.isArcgisOnline(this.options.url)?(this.params.f="geojson",this.request(function(i,s){this._trapSQLerrors(i),t.call(e,i,s,s)},this)):this.request(function(i,s){this._trapSQLerrors(i),t.call(e,i,s&&V.responseToFeatureCollection(s),s)},this)},count:function(t,e){return this._cleanParams(),this.params.returnCountOnly=!0,this.request(function(e,i){t.call(this,e,i&&i.count,i)},e)},ids:function(t,e){return this._cleanParams(),this.params.returnIdsOnly=!0,this.request(function(e,i){t.call(this,e,i&&i.objectIds,i)},e)},bounds:function(t,e){return this._cleanParams(),this.params.returnExtentOnly=!0,this.request(function(i,s){t.call(e,i,s&&s.extent&&V.extentToBounds(s.extent),s)},e)},pixelSize:function(t){return t=L.point(t),this.params.pixelSize=[t.x,t.y],this},layer:function(t){return this.path=t+"/query",this},_trapSQLerrors:function(t){t&&"400"===t.code&&V.warn("one common syntax error in query requests is encasing string values in double quotes instead of single quotes")},_cleanParams:function(){delete this.params.returnIdsOnly,delete this.params.returnExtentOnly,delete this.params.returnCountOnly},_setGeometry:function(t){return this.params.inSr=4326,t instanceof L.LatLngBounds?(this.params.geometry=V.boundsToExtent(t),void(this.params.geometryType="esriGeometryEnvelope")):(t.getLatLng&&(t=t.getLatLng()),t instanceof L.LatLng&&(t={type:"Point",coordinates:[t.lng,t.lat]}),t instanceof L.GeoJSON&&(t=t.getLayers()[0].feature.geometry,this.params.geometry=V.geojsonToArcGIS(t),this.params.geometryType=V.geojsonTypeToArcGIS(t.type)),t.toGeoJSON&&(t=t.toGeoJSON()),"Feature"===t.type&&(t=t.geometry),"Point"===t.type||"LineString"===t.type||"Polygon"===t.type?(this.params.geometry=V.geojsonToArcGIS(t),void(this.params.geometryType=V.geojsonTypeToArcGIS(t.type))):void V.warn("invalid geometry passed to spatial query. Should be an L.LatLng, L.LatLngBounds or L.Marker or a GeoJSON Point Line or Polygon object"))}}),tt=F,et=$.extend({setters:{contains:"contains",text:"searchText",fields:"searchFields",spatialReference:"sr",sr:"sr",layers:"layers",returnGeometry:"returnGeometry",maxAllowableOffset:"maxAllowableOffset",precision:"geometryPrecision",dynamicLayers:"dynamicLayers",returnZ:"returnZ",returnM:"returnM",gdbVersion:"gdbVersion",token:"token"},path:"find",params:{sr:4326,contains:!0,returnGeometry:!0,returnZ:!0,returnM:!1},layerDefs:function(t,e){return this.params.layerDefs=this.params.layerDefs?this.params.layerDefs+";":"",this.params.layerDefs+=[t,e].join(":"),this},simplify:function(t,e){var i=Math.abs(t.getBounds().getWest()-t.getBounds().getEast());return this.params.maxAllowableOffset=i/t.getSize().y*e,this},run:function(t,e){return this.request(function(i,s){t.call(e,i,s&&V.responseToFeatureCollection(s),s)},e)}}),it=$.extend({path:"identify",between:function(t,e){return this.params.time=[t.valueOf(),e.valueOf()],this}}),st=it.extend({setters:{layers:"layers",precision:"geometryPrecision",tolerance:"tolerance",returnGeometry:"returnGeometry"},params:{sr:4326,layers:"all",tolerance:3,returnGeometry:!0},on:function(t){var e=V.boundsToExtent(t.getBounds()),i=t.getSize();return this.params.imageDisplay=[i.x,i.y,96],this.params.mapExtent=[e.xmin,e.ymin,e.xmax,e.ymax],this},at:function(t){return t=L.latLng(t),this.params.geometry=[t.lng,t.lat],this.params.geometryType="esriGeometryPoint",this},layerDef:function(t,e){return this.params.layerDefs=this.params.layerDefs?this.params.layerDefs+";":"",this.params.layerDefs+=[t,e].join(":"),this},simplify:function(t,e){var i=Math.abs(t.getBounds().getWest()-t.getBounds().getEast());return this.params.maxAllowableOffset=i/t.getSize().y*(1-e),this},run:function(t,e){return this.request(function(i,s){if(i)return void t.call(e,i,void 0,s);var r=V.responseToFeatureCollection(s);s.results=s.results.reverse();for(var o=0;o<r.features.length;o++){var n=r.features[o];n.layerId=s.results[o].layerId}t.call(e,void 0,r,s)})}}),rt=it.extend({setters:{setMosaicRule:"mosaicRule",setRenderingRule:"renderingRule",setPixelSize:"pixelSize",returnCatalogItems:"returnCatalogItems",returnGeometry:"returnGeometry"},params:{returnGeometry:!1},at:function(t){return t=L.latLng(t),this.params.geometry=JSON.stringify({x:t.lng,y:t.lat,spatialReference:{wkid:4326}}),this.params.geometryType="esriGeometryPoint",this},getMosaicRule:function(){return this.params.mosaicRule},getRenderingRule:function(){return this.params.renderingRule},getPixelSize:function(){return this.params.pixelSize},run:function(t,e){return this.request(function(i,s){t.call(e,i,s&&this._responseToGeoJSON(s),s)},this)},_responseToGeoJSON:function(t){var e=t.location,i=t.catalogItems,s=t.catalogItemVisibilities,r={pixel:{type:"Feature",geometry:{type:"Point",coordinates:[e.x,e.y]},crs:{type:"EPSG",properties:{code:e.spatialReference.wkid}},properties:{OBJECTID:t.objectId,name:t.name,value:t.value},id:t.objectId}};if(t.properties&&t.properties.Values&&(r.pixel.properties.values=t.properties.Values),i&&i.features&&(r.catalogItems=V.responseToFeatureCollection(i),s&&s.length===r.catalogItems.features.length))for(var o=s.length-1;o>=0;o--)r.catalogItems.features[o].properties.catalogItemVisibility=s[o];return r}}),ot=L.Evented.extend({options:{proxy:!1,useCors:W},initialize:function(t){t=t||{},this._requestQueue=[],this._authenticating=!1,L.Util.setOptions(this,t),this.options.url=g(this.options.url)},get:function(t,e,i,s){return this._request("get",t,e,i,s)},post:function(t,e,i,s){return this._request("post",t,e,i,s)},request:function(t,e,i,s){return this._request("request",t,e,i,s)},metadata:function(t,e){return this._request("get","",{},t,e)},authenticate:function(t){return this._authenticating=!1,this.options.token=t,this._runQueue(),this},_request:function(t,e,i,s,r){this.fire("requeststart",{url:this.options.url+e,params:i,method:t},!0);var o=this._createServiceCallback(t,e,i,s,r);if(this.options.token&&(i.token=this.options.token),this._authenticating)return void this._requestQueue.push([t,e,i,s,r]);var n=this.options.proxy?this.options.proxy+"?"+this.options.url+e:this.options.url+e;return"get"!==t&&"request"!==t||this.options.useCors?X[t](n,i,o):X.get.JSONP(n,i,o)},_createServiceCallback:function(t,e,i,s,r){return L.Util.bind(function(o,n){!o||499!==o.code&&498!==o.code||(this._authenticating=!0,this._requestQueue.push([t,e,i,s,r]),this.fire("authenticationrequired",{authenticate:L.Util.bind(this.authenticate,this)},!0),o.authenticate=L.Util.bind(this.authenticate,this)),s.call(r,o,n),o?this.fire("requesterror",{url:this.options.url+e,params:i,message:o.message,code:o.code,method:t},!0):this.fire("requestsuccess",{url:this.options.url+e,params:i,response:n,method:t},!0),this.fire("requestend",{url:this.options.url+e,params:i,method:t},!0)},this)},_runQueue:function(){for(var t=this._requestQueue.length-1;t>=0;t--){var e=this._requestQueue[t],i=e.shift();this[i].apply(this,e)}this._requestQueue=[]}}),nt=ot.extend({identify:function(){return k(this)},find:function(){return C(this)},query:function(){return tt(this)}}),at=ot.extend({query:function(){return tt(this)},identify:function(){return M(this)}}),lt=ot.extend({options:{idAttribute:"OBJECTID"},query:function(){return tt(this)},addFeature:function(t,e,i){return delete t.id,t=f(t),this.post("addFeatures",{features:[t]},function(t,s){var r=s&&s.addResults?s.addResults[0]:void 0;e&&e.call(i,t||s.addResults[0].error,r)},i)},updateFeature:function(t,e,i){return t=f(t,this.options.idAttribute),this.post("updateFeatures",{features:[t]},function(t,s){var r=s&&s.updateResults?s.updateResults[0]:void 0;e&&e.call(i,t||s.updateResults[0].error,r)},i)},deleteFeature:function(t,e,i){return this.post("deleteFeatures",{objectIds:t},function(t,s){var r=s&&s.deleteResults?s.deleteResults[0]:void 0;e&&e.call(i,t||s.deleteResults[0].error,r)},i)},deleteFeatures:function(t,e,i){return this.post("deleteFeatures",{objectIds:t},function(t,s){var r=s&&s.deleteResults?s.deleteResults:void 0;e&&e.call(i,t||s.deleteResults[0].error,r)},i)}}),ut=L.Control.extend({options:{position:"bottomright",marginTop:0,marginLeft:0,marginBottom:0,marginRight:0},onAdd:function(){var t=L.DomUtil.create("div","esri-leaflet-logo");return t.style.marginTop=this.options.marginTop,t.style.marginLeft=this.options.marginLeft,t.style.marginBottom=this.options.marginBottom,t.style.marginRight=this.options.marginRight,t.innerHTML=this._adjustLogo(this._map._size),this._map.on("resize",function(e){t.innerHTML=this._adjustLogo(e.newSize)},this),t},_adjustLogo:function(t){return t.x<=600||t.y<=600?'<a href="https://developers.arcgis.com" style="border: none;"><img src="https://js.arcgis.com/3.13/esri/images/map/logo-sm.png" alt="Powered by Esri" style="border: none;"></a>':'<a href="https://developers.arcgis.com" style="border: none;"><img src="https://js.arcgis.com/3.13/esri/images/map/logo-med.png" alt="Powered by Esri" style="border: none;"></a>'}}),ht="https:"!==window.location.protocol?"http:":"https:",ct=L.TileLayer.extend({statics:{TILES:{Streets:{urlTemplate:ht+"//{s}.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}",attributionUrl:"https://static.arcgis.com/attribution/World_Street_Map",options:{hideLogo:!1,logoPosition:"bottomright",minZoom:1,maxZoom:19,subdomains:["server","services"],attribution:"Esri"}},Topographic:{urlTemplate:ht+"//{s}.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}",attributionUrl:"https://static.arcgis.com/attribution/World_Topo_Map",options:{hideLogo:!1,logoPosition:"bottomright",minZoom:1,maxZoom:19,subdomains:["server","services"],attribution:"Esri"}},Oceans:{urlTemplate:ht+"//{s}.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer/tile/{z}/{y}/{x}",attributionUrl:"https://static.arcgis.com/attribution/Ocean_Basemap",options:{hideLogo:!1,logoPosition:"bottomright",minZoom:1,maxZoom:16,subdomains:["server","services"],attribution:"Esri"}},OceansLabels:{urlTemplate:ht+"//{s}.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Reference/MapServer/tile/{z}/{y}/{x}",options:{hideLogo:!0,logoPosition:"bottomright",minZoom:1,maxZoom:16,subdomains:["server","services"],pane:J?"esri-labels":"tilePane"}},NationalGeographic:{urlTemplate:ht+"//{s}.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/tile/{z}/{y}/{x}",options:{hideLogo:!1,logoPosition:"bottomright",minZoom:1,maxZoom:16,subdomains:["server","services"],attribution:"Esri"}},DarkGray:{urlTemplate:ht+"//{s}.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Base/MapServer/tile/{z}/{y}/{x}",options:{hideLogo:!1,logoPosition:"bottomright",minZoom:1,maxZoom:16,subdomains:["server","services"],attribution:"Esri, DeLorme, HERE"}},DarkGrayLabels:{urlTemplate:ht+"//{s}.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Reference/MapServer/tile/{z}/{y}/{x}",options:{hideLogo:!0,logoPosition:"bottomright",minZoom:1,maxZoom:16,subdomains:["server","services"],pane:J?"esri-labels":"tilePane"}},Gray:{urlTemplate:ht+"//{s}.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}",options:{hideLogo:!1,logoPosition:"bottomright",minZoom:1,maxZoom:16,subdomains:["server","services"],attribution:"Esri, NAVTEQ, DeLorme"}},GrayLabels:{urlTemplate:ht+"//{s}.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Reference/MapServer/tile/{z}/{y}/{x}",options:{hideLogo:!0,logoPosition:"bottomright",minZoom:1,maxZoom:16,subdomains:["server","services"],pane:J?"esri-labels":"tilePane"}},Imagery:{urlTemplate:ht+"//{s}.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",options:{hideLogo:!1,logoPosition:"bottomright",minZoom:1,maxZoom:19,subdomains:["server","services"],attribution:"Esri, DigitalGlobe, GeoEye, i-cubed, USDA, USGS, AEX, Getmapping, Aerogrid, IGN, IGP, swisstopo, and the GIS User Community"}},ImageryLabels:{urlTemplate:ht+"//{s}.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places/MapServer/tile/{z}/{y}/{x}",options:{hideLogo:!0,logoPosition:"bottomright",minZoom:1,maxZoom:19,subdomains:["server","services"],pane:J?"esri-labels":"tilePane"}},ImageryTransportation:{urlTemplate:ht+"//{s}.arcgisonline.com/ArcGIS/rest/services/Reference/World_Transportation/MapServer/tile/{z}/{y}/{x}",options:{hideLogo:!0,logoPosition:"bottomright",minZoom:1,maxZoom:19,subdomains:["server","services"],pane:J?"esri-labels":"tilePane"}},ShadedRelief:{urlTemplate:ht+"//{s}.arcgisonline.com/ArcGIS/rest/services/World_Shaded_Relief/MapServer/tile/{z}/{y}/{x}",options:{hideLogo:!1,logoPosition:"bottomright",minZoom:1,maxZoom:13,subdomains:["server","services"],attribution:"Esri, NAVTEQ, DeLorme"}},ShadedReliefLabels:{urlTemplate:ht+"//{s}.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places_Alternate/MapServer/tile/{z}/{y}/{x}",options:{hideLogo:!0,logoPosition:"bottomright",minZoom:1,maxZoom:12,subdomains:["server","services"],pane:J?"esri-labels":"tilePane"}},Terrain:{urlTemplate:ht+"//{s}.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer/tile/{z}/{y}/{x}",options:{hideLogo:!1,logoPosition:"bottomright",minZoom:1,maxZoom:13,subdomains:["server","services"],attribution:"Esri, USGS, NOAA"}},TerrainLabels:{urlTemplate:ht+"//{s}.arcgisonline.com/ArcGIS/rest/services/Reference/World_Reference_Overlay/MapServer/tile/{z}/{y}/{x}",options:{hideLogo:!0,logoPosition:"bottomright",minZoom:1,maxZoom:13,subdomains:["server","services"],pane:J?"esri-labels":"tilePane"}}}},initialize:function(t,e){var i;if("object"==typeof t&&t.urlTemplate&&t.options)i=t;else{if("string"!=typeof t||!ct.TILES[t])throw new Error('L.esri.BasemapLayer: Invalid parameter. Use one of "Streets", "Topographic", "Oceans", "OceansLabels", "NationalGeographic", "Gray", "GrayLabels", "DarkGray", "DarkGrayLabels", "Imagery", "ImageryLabels", "ImageryTransportation", "ShadedRelief", "ShadedReliefLabels", "Terrain" or "TerrainLabels"');i=ct.TILES[t]}var s=L.Util.extend(i.options,e);L.TileLayer.prototype.initialize.call(this,i.urlTemplate,L.Util.setOptions(this,s)),i.attributionUrl&&this._getAttributionData(i.attributionUrl),this._logo=D({position:this.options.logoPosition})},onAdd:function(t){this.options.hideLogo||t._hasEsriLogo||(this._logo.addTo(t),t._hasEsriLogo=!0),"esri-labels"===this.options.pane&&this._initPane(),L.TileLayer.prototype.onAdd.call(this,t),t.on("moveend",this._updateMapAttribution,this)},onRemove:function(t){this._logo&&this._logo._container&&(t.removeControl(this._logo),t._hasEsriLogo=!1),L.TileLayer.prototype.onRemove.call(this,t),t.off("moveend",this._updateMapAttribution,this)},getAttribution:function(){var t='<span class="esri-attributions" style="line-height:14px; vertical-align: -3px; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; display:inline-block;">'+this.options.attribution+"</span>";return t},_initPane:function(){if(!this._map.getPane(this.options.pane)){var t=this._map.createPane(this.options.pane);t.style.pointerEvents="none",t.style.zIndex=500}},_getAttributionData:function(t){R(t,{},L.Util.bind(function(t,e){if(!t){this._attributions=[];for(var i=0;i<e.contributors.length;i++)for(var s=e.contributors[i],r=0;r<s.coverageAreas.length;r++){var o=s.coverageAreas[r],n=new L.LatLng(o.bbox[0],o.bbox[1]),a=new L.LatLng(o.bbox[2],o.bbox[3]);this._attributions.push({attribution:s.attribution,score:o.score,bounds:new L.LatLngBounds(n,a),minZoom:o.zoomMin,maxZoom:o.zoomMax})}this._attributions.sort(function(t,e){return e.score-t.score}),this._updateMapAttribution()}},this))},_updateMapAttribution:function(){if(this._map&&this._map.attributionControl&&this._attributions){for(var t="",e=this._map.getBounds(),i=this._map.getZoom(),s=0;s<this._attributions.length;s++){var r=this._attributions[s],o=r.attribution;!t.match(o)&&e.intersects(r.bounds)&&i>=r.minZoom&&i<=r.maxZoom&&(t+=", "+o)}t=t.substr(2);var n=this._map.attributionControl._container.querySelector(".esri-attributions");n.innerHTML=t,n.style.maxWidth=.65*this._map.getSize().x+"px",this.fire("attributionupdated",{attribution:t})}}});t.BasemapLayer=ct,t.basemapLayer=j;var pt=L.TileLayer.extend({options:{zoomOffsetAllowance:.1,correctZoomLevels:!0},statics:{MercatorZoomLevels:{0:156543.033928,1:78271.5169639999,2:39135.7584820001,3:19567.8792409999,4:9783.93962049996,5:4891.96981024998,6:2445.98490512499,7:1222.99245256249,8:611.49622628138,9:305.748113140558,10:152.874056570411,11:76.4370282850732,12:38.2185141425366,13:19.1092570712683,14:9.55462853563415,15:4.77731426794937,16:2.38865713397468,17:1.19432856685505,18:.597164283559817,19:.298582141647617,20:.14929107082381,21:.07464553541191,22:.0373227677059525,23:.0186613838529763}},initialize:function(t){t.url=g(t.url),t=L.Util.setOptions(this,t),this.tileUrl=t.url+"tile/{z}/{y}/{x}",this.service=G(t),this.service.addEventParent(this),this.tileUrl.match("://tiles.arcgisonline.com")&&(this.tileUrl=this.tileUrl.replace("://tiles.arcgisonline.com","://tiles{s}.arcgisonline.com"),t.subdomains=["1","2","3","4"]),this.options.token&&(this.tileUrl+="?token="+this.options.token),L.TileLayer.prototype.initialize.call(this,this.tileUrl,t)},getTileUrl:function(t){return L.Util.template(this.tileUrl,L.extend({s:this._getSubdomain(t),z:this._lodMap[t.z]||t.z,x:t.x,y:t.y},this.options))},onAdd:function(t){!this._lodMap&&this.options.correctZoomLevels?(this._lodMap={},this.metadata(function(e,i){if(!e){var s=i.spatialReference.latestWkid||i.spatialReference.wkid;if(102100===s||3857===s)for(var r=i.tileInfo.lods,o=pt.MercatorZoomLevels,n=0;n<r.length;n++){var a=r[n];for(var l in o){var u=o[l];if(this._withinPercentage(a.resolution,u,this.options.zoomOffsetAllowance)){this._lodMap[l]=a.level;break}}}else b("L.esri.TiledMapLayer is using a non-mercator spatial reference. Support may be available through Proj4Leaflet http://esri.github.io/esri-leaflet/examples/non-mercator-projection.html")}L.TileLayer.prototype.onAdd.call(this,t)},this)):L.TileLayer.prototype.onAdd.call(this,t)},metadata:function(t,e){return this.service.metadata(t,e),this},identify:function(){return this.service.identify()},find:function(){return this.service.find()},query:function(){return this.service.query()},authenticate:function(t){var e="?token="+t;return this.tileUrl=this.options.token?this.tileUrl.replace(/\?token=(.+)/g,e):this.tileUrl+e,this.options.token=t,this.service.authenticate(t),this},_withinPercentage:function(t,e,i){var s=Math.abs(t/e-1);return i>s}});t.TiledMapLayer=pt,t.tiledMapLayer=B;var dt=L.Layer.extend({options:{opacity:1,position:"front",f:"image",useCors:W,attribution:null,interactive:!1,alt:""},onAdd:function(t){if(this._update=L.Util.throttle(this._update,this.options.updateInterval,this),t.options.crs&&t.options.crs.code){var e=t.options.crs.code.split(":")[1];this.options.bboxSR=e,this.options.imageSR=e}t.on("moveend",this._update,this),this._currentImage&&this._currentImage._bounds.equals(this._map.getBounds())?t.addLayer(this._currentImage):this._currentImage&&(this._map.removeLayer(this._currentImage),this._currentImage=null),this._update(),this._popup&&(this._map.on("click",this._getPopupData,this),this._map.on("dblclick",this._resetPopupState,this))},onRemove:function(t){this._currentImage&&this._map.removeLayer(this._currentImage),this._popup&&(this._map.off("click",this._getPopupData,this),this._map.off("dblclick",this._resetPopupState,this)),this._map.off("moveend",this._update,this)},getEvents:function(){return{moveend:this._update}},bindPopup:function(t,e){return this._shouldRenderPopup=!1,this._lastClick=!1,this._popup=L.popup(e),this._popupFunction=t,this._map&&(this._map.on("click",this._getPopupData,this),this._map.on("dblclick",this._resetPopupState,this)),this},unbindPopup:function(){return this._map&&(this._map.closePopup(this._popup),this._map.off("click",this._getPopupData,this),this._map.off("dblclick",this._resetPopupState,this)),this._popup=!1,this},bringToFront:function(){return this.options.position="front",this._currentImage&&this._currentImage.bringToFront(),this},bringToBack:function(){return this.options.position="back",this._currentImage&&this._currentImage.bringToBack(),this},getAttribution:function(){return this.options.attribution},getOpacity:function(){return this.options.opacity},setOpacity:function(t){return this.options.opacity=t,this._currentImage.setOpacity(t),this},getTimeRange:function(){return[this.options.from,this.options.to]},setTimeRange:function(t,e){return this.options.from=t,this.options.to=e,this._update(),this},metadata:function(t,e){return this.service.metadata(t,e),this},authenticate:function(t){return this.service.authenticate(t),this},_renderImage:function(t,e){if(this._map){var i=new L.ImageOverlay(t,e,{opacity:0,crossOrigin:this.options.useCors,alt:this.options.alt,pane:this.options.pane||this.getPane(),interactive:this.options.interactive}).addTo(this._map);i.once("load",function(t){if(this._map){var i=t.target,s=this._currentImage;i._bounds.equals(e)&&i._bounds.equals(this._map.getBounds())?(this._currentImage=i,"front"===this.options.position?this.bringToFront():this.bringToBack(),this._map&&this._currentImage._map?this._currentImage.setOpacity(this.options.opacity):this._currentImage._map.removeLayer(this._currentImage),s&&this._map&&this._map.removeLayer(s),s&&s._map&&s._map.removeLayer(s)):this._map.removeLayer(i)}this.fire("load",{bounds:e})},this),this.fire("loading",{bounds:e})}},_update:function(){if(this._map){var t=this._map.getZoom(),e=this._map.getBounds();if(!this._animatingZoom&&!(this._map._panTransition&&this._map._panTransition._inProgress||t>this.options.maxZoom||t<this.options.minZoom)){var i=this._buildExportParams();this._requestExport(i,e); +}}},_renderPopup:function(t,e,i,s){if(t=L.latLng(t),this._shouldRenderPopup&&this._lastClick.equals(t)){var r=this._popupFunction(e,i,s);r&&this._popup.setLatLng(t).setContent(r).openOn(this._map)}},_resetPopupState:function(t){this._shouldRenderPopup=!1,this._lastClick=t.latlng}});t.RasterLayer=dt;var mt=dt.extend({options:{updateInterval:150,format:"jpgpng",transparent:!0,f:"json"},query:function(){return this.service.query()},identify:function(){return this.service.identify()},initialize:function(t){t.url=g(t.url),this.service=E(t),this.service.addEventParent(this),L.Util.setOptions(this,t)},setPixelType:function(t){return this.options.pixelType=t,this._update(),this},getPixelType:function(){return this.options.pixelType},setBandIds:function(t){return L.Util.isArray(t)?this.options.bandIds=t.join(","):this.options.bandIds=t.toString(),this._update(),this},getBandIds:function(){return this.options.bandIds},setNoData:function(t,e){return L.Util.isArray(t)?this.options.noData=t.join(","):this.options.noData=t.toString(),e&&(this.options.noDataInterpretation=e),this._update(),this},getNoData:function(){return this.options.noData},getNoDataInterpretation:function(){return this.options.noDataInterpretation},setRenderingRule:function(t){this.options.renderingRule=t,this._update()},getRenderingRule:function(){return this.options.renderingRule},setMosaicRule:function(t){this.options.mosaicRule=t,this._update()},getMosaicRule:function(){return this.options.mosaicRule},_getPopupData:function(t){var e=L.Util.bind(function(e,i,s){e||setTimeout(L.Util.bind(function(){this._renderPopup(t.latlng,e,i,s)},this),300)},this),i=this.identify().at(t.latlng);this.options.mosaicRule&&i.setMosaicRule(this.options.mosaicRule),i.run(e),this._shouldRenderPopup=!0,this._lastClick=t.latlng},_buildExportParams:function(){var t=this._map.getBounds(),e=this._map.getSize(),i=this._map.options.crs.project(t._northEast),s=this._map.options.crs.project(t._southWest),r={bbox:[s.x,s.y,i.x,i.y].join(","),size:e.x+","+e.y,format:this.options.format,transparent:this.options.transparent,bboxSR:this.options.bboxSR,imageSR:this.options.imageSR};return this.options.from&&this.options.to&&(r.time=this.options.from.valueOf()+","+this.options.to.valueOf()),this.options.pixelType&&(r.pixelType=this.options.pixelType),this.options.interpolation&&(r.interpolation=this.options.interpolation),this.options.compressionQuality&&(r.compressionQuality=this.options.compressionQuality),this.options.bandIds&&(r.bandIds=this.options.bandIds),this.options.noData&&(r.noData=this.options.noData),this.options.noDataInterpretation&&(r.noDataInterpretation=this.options.noDataInterpretation),this.service.options.token&&(r.token=this.service.options.token),this.options.renderingRule&&(r.renderingRule=JSON.stringify(this.options.renderingRule)),this.options.mosaicRule&&(r.mosaicRule=JSON.stringify(this.options.mosaicRule)),r},_requestExport:function(t,e){"json"===this.options.f?this.service.get("exportImage",t,function(t,i){t||this._renderImage(i.href,e)},this):(t.f="image",this._renderImage(this.options.url+"exportImage"+L.Util.getParamString(t),e))}});t.ImageMapLayer=mt,t.imageMapLayer=U;var ft=dt.extend({options:{updateInterval:150,layers:!1,layerDefs:!1,timeOptions:!1,format:"png24",transparent:!0,f:"json"},initialize:function(t){t.url=g(t.url),this.service=G(t),this.service.addEventParent(this),(t.proxy||t.token)&&"json"!==t.f&&(t.f="json"),L.Util.setOptions(this,t)},getDynamicLayers:function(){return this.options.dynamicLayers},setDynamicLayers:function(t){return this.options.dynamicLayers=t,this._update(),this},getLayers:function(){return this.options.layers},setLayers:function(t){return this.options.layers=t,this._update(),this},getLayerDefs:function(){return this.options.layerDefs},setLayerDefs:function(t){return this.options.layerDefs=t,this._update(),this},getTimeOptions:function(){return this.options.timeOptions},setTimeOptions:function(t){return this.options.timeOptions=t,this._update(),this},query:function(){return this.service.query()},identify:function(){return this.service.identify()},find:function(){return this.service.find()},_getPopupData:function(t){var e=L.Util.bind(function(e,i,s){e||setTimeout(L.Util.bind(function(){this._renderPopup(t.latlng,e,i,s)},this),300)},this),i=this.identify().on(this._map).at(t.latlng);this.options.layers?i.layers("visible:"+this.options.layers.join(",")):i.layers("visible"),i.run(e),this._shouldRenderPopup=!0,this._lastClick=t.latlng},_buildExportParams:function(){var t=this._map.getBounds(),e=this._map.getSize(),i=this._map.options.crs.project(t._northEast),s=this._map.options.crs.project(t._southWest),r=this._map.latLngToLayerPoint(t._northEast),o=this._map.latLngToLayerPoint(t._southWest);(r.y>0||o.y<e.y)&&(e.y=o.y-r.y);var n={bbox:[s.x,s.y,i.x,i.y].join(","),size:e.x+","+e.y,dpi:96,format:this.options.format,transparent:this.options.transparent,bboxSR:this.options.bboxSR,imageSR:this.options.imageSR};return this.options.dynamicLayers&&(n.dynamicLayers=this.options.dynamicLayers),this.options.layers&&(n.layers="show:"+this.options.layers.join(",")),this.options.layerDefs&&(n.layerDefs=JSON.stringify(this.options.layerDefs)),this.options.timeOptions&&(n.timeOptions=JSON.stringify(this.options.timeOptions)),this.options.from&&this.options.to&&(n.time=this.options.from.valueOf()+","+this.options.to.valueOf()),this.service.options.token&&(n.token=this.service.options.token),n},_requestExport:function(t,e){"json"===this.options.f?this.service.get("export",t,function(t,i){t||this._renderImage(i.href,e)},this):(t.f="image",this._renderImage(this.options.url+"export"+L.Util.getParamString(t),e))}});t.DynamicMapLayer=ft,t.dynamicMapLayer=z;var yt=L.Layer.extend({options:{cellSize:512,updateInterval:150},initialize:function(t){t=L.setOptions(this,t)},onAdd:function(t){this._map=t,this._update=L.Util.throttle(this._update,this.options.updateInterval,this),this._reset(),this._update()},onRemove:function(){this._map.removeEventListener(this.getEvents(),this),this._removeCells()},getEvents:function(){var t={moveend:this._update,zoomend:this._reset};return t},addTo:function(t){return t.addLayer(this),this},removeFrom:function(t){return t.removeLayer(this),this},_reset:function(){this._removeCells(),this._cells={},this._activeCells={},this._cellsToLoad=0,this._cellsTotal=0,this._cellNumBounds=this._getCellNumBounds(),this._resetWrap()},_resetWrap:function(){var t=this._map,e=t.options.crs;if(!e.infinite){var i=this._getCellSize();e.wrapLng&&(this._wrapLng=[Math.floor(t.project([0,e.wrapLng[0]]).x/i),Math.ceil(t.project([0,e.wrapLng[1]]).x/i)]),e.wrapLat&&(this._wrapLat=[Math.floor(t.project([e.wrapLat[0],0]).y/i),Math.ceil(t.project([e.wrapLat[1],0]).y/i)])}},_getCellSize:function(){return this.options.cellSize},_update:function(){if(this._map){var t=this._map.getPixelBounds(),e=this._map.getZoom(),i=this._getCellSize();if(!(e>this.options.maxZoom||e<this.options.minZoom)){var s=L.bounds(t.min.divideBy(i).floor(),t.max.divideBy(i).floor());this._removeOtherCells(s),this._addCells(s)}}},_addCells:function(t){var e,i,s,r=[],o=t.getCenter(),n=this._map.getZoom();for(e=t.min.y;e<=t.max.y;e++)for(i=t.min.x;i<=t.max.x;i++)s=new L.Point(i,e),s.z=n,this._isValidCell(s)&&r.push(s);var a=r.length;if(0!==a)for(this._cellsToLoad+=a,this._cellsTotal+=a,r.sort(function(t,e){return t.distanceTo(o)-e.distanceTo(o)}),i=0;a>i;i++)this._addCell(r[i])},_isValidCell:function(t){var e=this._map.options.crs;if(!e.infinite){var i=this._cellNumBounds;if(!e.wrapLng&&(t.x<i.min.x||t.x>i.max.x)||!e.wrapLat&&(t.y<i.min.y||t.y>i.max.y))return!1}if(!this.options.bounds)return!0;var s=this._cellCoordsToBounds(t);return L.latLngBounds(this.options.bounds).intersects(s)},_cellCoordsToBounds:function(t){var e=this._map,i=this.options.cellSize,s=t.multiplyBy(i),r=s.add([i,i]),o=e.wrapLatLng(e.unproject(s,t.z)),n=e.wrapLatLng(e.unproject(r,t.z));return new L.LatLngBounds(o,n)},_cellCoordsToKey:function(t){return t.x+":"+t.y},_keyToCellCoords:function(t){var e=t.split(":"),i=parseInt(e[0],10),s=parseInt(e[1],10);return new L.Point(i,s)},_removeOtherCells:function(t){for(var e in this._cells)t.contains(this._keyToCellCoords(e))||this._removeCell(e)},_removeCell:function(t){var e=this._activeCells[t];e&&(delete this._activeCells[t],this.cellLeave&&this.cellLeave(e.bounds,e.coords),this.fire("cellleave",{bounds:e.bounds,coords:e.coords}))},_removeCells:function(){for(var t in this._cells){var e=this._cells[t].bounds,i=this._cells[t].coords;this.cellLeave&&this.cellLeave(e,i),this.fire("cellleave",{bounds:e,coords:i})}},_addCell:function(t){this._wrapCoords(t);var e=this._cellCoordsToKey(t),i=this._cells[e];i&&!this._activeCells[e]&&(this.cellEnter&&this.cellEnter(i.bounds,t),this.fire("cellenter",{bounds:i.bounds,coords:t}),this._activeCells[e]=i),i||(i={coords:t,bounds:this._cellCoordsToBounds(t)},this._cells[e]=i,this._activeCells[e]=i,this.createCell&&this.createCell(i.bounds,t),this.fire("cellcreate",{bounds:i.bounds,coords:t}))},_wrapCoords:function(t){t.x=this._wrapLng?L.Util.wrapNum(t.x,this._wrapLng):t.x,t.y=this._wrapLat?L.Util.wrapNum(t.y,this._wrapLat):t.y},_getCellNumBounds:function(){var t=this._map.getPixelWorldBounds(),e=this._getCellSize();return t?L.bounds(t.min.divideBy(e).floor(),t.max.divideBy(e).ceil().subtract([1,1])):null}});t.FeatureGrid=yt;var gt=yt.extend({options:{attribution:null,where:"1=1",fields:["*"],from:!1,to:!1,timeField:!1,timeFilterMode:"server",simplifyFactor:0,precision:6},initialize:function(t){if(yt.prototype.initialize.call(this,t),t.url=g(t.url),t=L.setOptions(this,t),this.service=A(t),this.service.addEventParent(this),"*"!==this.options.fields[0]){for(var e=!1,i=0;i<this.options.fields.length;i++)this.options.fields[i].match(/^(OBJECTID|FID|OID|ID)$/i)&&(e=!0);e===!1&&b("no known esriFieldTypeOID field detected in fields Array. Please add an attribute field containing unique IDs to ensure the layer can be drawn correctly.")}this.options.timeField.start&&this.options.timeField.end?(this._startTimeIndex=new Z,this._endTimeIndex=new Z):this.options.timeField&&(this._timeIndex=new Z),this._cache={},this._currentSnapshot=[],this._activeRequests=0},onAdd:function(t){return yt.prototype.onAdd.call(this,t)},onRemove:function(t){return yt.prototype.onRemove.call(this,t)},getAttribution:function(){return this.options.attribution},createCell:function(t,e){this._requestFeatures(t,e)},_requestFeatures:function(t,e,i){return this._activeRequests++,1===this._activeRequests&&this.fire("loading",{bounds:t},!0),this._buildQuery(t).run(function(s,r,o){o&&o.exceededTransferLimit&&this.fire("drawlimitexceeded"),!s&&r&&r.features.length&&L.Util.requestAnimFrame(L.Util.bind(function(){this._addFeatures(r.features,e),this._postProcessFeatures(t)},this)),s||!r||r.features.length||this._postProcessFeatures(t),i&&i.call(this,s,r)},this)},_postProcessFeatures:function(t){this._activeRequests--,this._activeRequests<=0&&this.fire("load",{bounds:t})},_cacheKey:function(t){return t.z+":"+t.x+":"+t.y},_addFeatures:function(t,e){var i=this._cacheKey(e);this._cache[i]=this._cache[i]||[];for(var s=t.length-1;s>=0;s--){var r=t[s].id;this._currentSnapshot.push(r),this._cache[i].push(r)}this.options.timeField&&this._buildTimeIndexes(t);var o=this._map.getZoom();o>this.options.maxZoom||o<this.options.minZoom||this.createLayers(t)},_buildQuery:function(t){var e=this.service.query().intersects(t).where(this.options.where).fields(this.options.fields).precision(this.options.precision);return this.options.simplifyFactor&&e.simplify(this._map,this.options.simplifyFactor),"server"===this.options.timeFilterMode&&this.options.from&&this.options.to&&e.between(this.options.from,this.options.to),e},setWhere:function(t,e,i){this.options.where=t&&t.length?t:"1=1";for(var s=[],r=[],o=0,n=null,a=L.Util.bind(function(t,a){if(t&&(n=t),a)for(var l=a.features.length-1;l>=0;l--)r.push(a.features[l].id);o--,0>=o&&(this._currentSnapshot=r,L.Util.requestAnimFrame(L.Util.bind(function(){this.removeLayers(s),this.addLayers(r),e&&e.call(i,n)},this)))},this),l=this._currentSnapshot.length-1;l>=0;l--)s.push(this._currentSnapshot[l]);for(var u in this._activeCells){o++;var h=this._keyToCellCoords(u),c=this._cellCoordsToBounds(h);this._requestFeatures(c,u,a)}return this},getWhere:function(){return this.options.where},getTimeRange:function(){return[this.options.from,this.options.to]},setTimeRange:function(t,e,i,s){var r=this.options.from,o=this.options.to,n=0,a=null,l=L.Util.bind(function(l){l&&(a=l),this._filterExistingFeatures(r,o,t,e),n--,i&&0>=n&&i.call(s,a)},this);if(this.options.from=t,this.options.to=e,this._filterExistingFeatures(r,o,t,e),"server"===this.options.timeFilterMode)for(var u in this._activeCells){n++;var h=this._keyToCellCoords(u),c=this._cellCoordsToBounds(h);this._requestFeatures(c,u,l)}return this},refresh:function(){for(var t in this._activeCells){var e=this._keyToCellCoords(t),i=this._cellCoordsToBounds(e);this._requestFeatures(i,t)}this.redraw&&this.once("load",function(){this.eachFeature(function(t){this._redraw(t.feature.id)},this)},this)},_filterExistingFeatures:function(t,e,i,s){var r=t&&e?this._getFeaturesInTimeRange(t,e):this._currentSnapshot,o=this._getFeaturesInTimeRange(i,s);if(o.indexOf)for(var n=0;n<o.length;n++){var a=r.indexOf(o[n]);a>=0&&r.splice(a,1)}L.Util.requestAnimFrame(L.Util.bind(function(){this.removeLayers(r),this.addLayers(o)},this))},_getFeaturesInTimeRange:function(t,e){var i,s=[];if(this.options.timeField.start&&this.options.timeField.end){var r=this._startTimeIndex.between(t,e),o=this._endTimeIndex.between(t,e);i=r.concat(o)}else i=this._timeIndex.between(t,e);for(var n=i.length-1;n>=0;n--)s.push(i[n].id);return s},_buildTimeIndexes:function(t){var e,i;if(this.options.timeField.start&&this.options.timeField.end){var s=[],r=[];for(e=t.length-1;e>=0;e--)i=t[e],s.push({id:i.id,value:new Date(i.properties[this.options.timeField.start])}),r.push({id:i.id,value:new Date(i.properties[this.options.timeField.end])});this._startTimeIndex.bulkAdd(s),this._endTimeIndex.bulkAdd(r)}else{var o=[];for(e=t.length-1;e>=0;e--)i=t[e],o.push({id:i.id,value:new Date(i.properties[this.options.timeField])});this._timeIndex.bulkAdd(o)}},_featureWithinTimeRange:function(t){if(!this.options.from||!this.options.to)return!0;var e=+this.options.from.valueOf(),i=+this.options.to.valueOf();if("string"==typeof this.options.timeField){var s=+t.properties[this.options.timeField];return s>=e&&i>=s}if(this.options.timeField.start&&this.options.timeField.end){var r=+t.properties[this.options.timeField.start],o=+t.properties[this.options.timeField.end];return r>=e&&i>=r||o>=e&&i>=o}},authenticate:function(t){return this.service.authenticate(t),this},metadata:function(t,e){return this.service.metadata(t,e),this},query:function(){return this.service.query()},_getMetadata:function(t){if(this._metadata){var e;t(e,this._metadata)}else this.metadata(L.Util.bind(function(e,i){this._metadata=i,t(e,this._metadata)},this))},addFeature:function(t,e,i){this._getMetadata(L.Util.bind(function(s,r){return s?void(e&&e.call(this,s,null)):void this.service.addFeature(t,L.Util.bind(function(s,o){s||(t.properties[r.objectIdField]=o.objectId,t.id=o.objectId,this.createLayers([t])),e&&e.call(i,s,o)},this))},this))},updateFeature:function(t,e,i){this.service.updateFeature(t,function(s,r){s||(this.removeLayers([t.id],!0),this.createLayers([t])),e&&e.call(i,s,r)},this)},deleteFeature:function(t,e,i){this.service.deleteFeature(t,function(t,s){!t&&s.objectId&&this.removeLayers([s.objectId],!0),e&&e.call(i,t,s)},this)},deleteFeatures:function(t,e,i){return this.service.deleteFeatures(t,function(t,s){if(!t&&s.length>0)for(var r=0;r<s.length;r++)this.removeLayers([s[r].objectId],!0);e&&e.call(i,t,s)},this)}});Z.prototype._query=function(t){for(var e,i,s=0,r=this.values.length-1;r>=s;)if(e=(s+r)/2|0,i=this.values[Math.round(e)],+i.value<+t)s=e+1;else{if(!(+i.value>+t))return e;r=e-1}return~r},Z.prototype.sort=function(){this.values.sort(function(t,e){return+e.value-+t.value}).reverse(),this.dirty=!1},Z.prototype.between=function(t,e){this.dirty&&this.sort();var i=this._query(t),s=this._query(e);return 0===i&&0===s?[]:(i=Math.abs(i),s=0>s?Math.abs(s):s+1,this.values.slice(i,s))},Z.prototype.bulkAdd=function(t){this.dirty=!0,this.values=this.values.concat(t)},t.FeatureManager=gt;var _t=gt.extend({options:{cacheLayers:!0},initialize:function(t){gt.prototype.initialize.call(this,t),this._originalStyle=this.options.style,this._layers={}},onAdd:function(t){return t.on("zoomstart zoomend",function(t){this._zooming="zoomstart"===t.type},this),gt.prototype.onAdd.call(this,t)},onRemove:function(t){for(var e in this._layers)t.removeLayer(this._layers[e]);return gt.prototype.onRemove.call(this,t)},createNewLayer:function(t){var e=L.GeoJSON.geometryToLayer(t,this.options);return e.defaultOptions=e.options,e},_updateLayer:function(t,e){var i=[],s=this.options.coordsToLatLng||L.GeoJSON.coordsToLatLng;switch(e.properties&&(t.feature.properties=e.properties),e.geometry.type){case"Point":i=L.GeoJSON.coordsToLatLng(e.geometry.coordinates),t.setLatLng(i);break;case"LineString":i=L.GeoJSON.coordsToLatLngs(e.geometry.coordinates,0,s),t.setLatLngs(i);break;case"MultiLineString":i=L.GeoJSON.coordsToLatLngs(e.geometry.coordinates,1,s),t.setLatLngs(i);break;case"Polygon":i=L.GeoJSON.coordsToLatLngs(e.geometry.coordinates,1,s),t.setLatLngs(i);break;case"MultiPolygon":i=L.GeoJSON.coordsToLatLngs(e.geometry.coordinates,2,s),t.setLatLngs(i)}},createLayers:function(t){for(var e=t.length-1;e>=0;e--){var i,s=t[e],r=this._layers[s.id];r&&!this._map.hasLayer(r)&&this._map.addLayer(r),r&&(r.setLatLngs||r.setLatLng)&&this._updateLayer(r,s),r||(i=this.createNewLayer(s),i.feature=s,i.addEventParent(this),this.options.onEachFeature&&this.options.onEachFeature(i.feature,i),this._layers[i.feature.id]=i,this.setFeatureStyle(i.feature.id,this.options.style),this.fire("createfeature",{feature:i.feature},!0),(!this.options.timeField||this.options.timeField&&this._featureWithinTimeRange(s))&&this._map.addLayer(i))}},addLayers:function(t){for(var e=t.length-1;e>=0;e--){var i=this._layers[t[e]];i&&(this.fire("addfeature",{feature:i.feature},!0),this._map.addLayer(i))}},removeLayers:function(t,e){for(var i=t.length-1;i>=0;i--){var s=t[i],r=this._layers[s];r&&(this.fire("removefeature",{feature:r.feature,permanent:e},!0),this._map.removeLayer(r)),r&&e&&delete this._layers[s]}},cellEnter:function(t,e){this._zooming||L.Util.requestAnimFrame(L.Util.bind(function(){var t=this._cacheKey(e),i=this._cellCoordsToKey(e),s=this._cache[t];this._activeCells[i]&&s&&this.addLayers(s)},this))},cellLeave:function(t,e){this._zooming||L.Util.requestAnimFrame(L.Util.bind(function(){var t=this._cacheKey(e),i=this._cellCoordsToKey(e),s=this._cache[t],r=this._map.getBounds();if(!this._activeCells[i]&&s){for(var o=!0,n=0;n<s.length;n++){var a=this._layers[s[n]];a&&a.getBounds&&r.intersects(a.getBounds())&&(o=!1)}o&&this.removeLayers(s,!this.options.cacheLayers),!this.options.cacheLayers&&o&&(delete this._cache[t],delete this._cells[i],delete this._activeCells[i])}},this))},resetStyle:function(){return this.options.style=this._originalStyle,this.eachFeature(function(t){this.resetFeatureStyle(t.feature.id)},this),this},setStyle:function(t){return this.options.style=t,this.eachFeature(function(e){this.setFeatureStyle(e.feature.id,t)},this),this},resetFeatureStyle:function(t){var e=this._layers[t],i=this._originalStyle||L.Path.prototype.options;return e&&(L.Util.extend(e.options,e.defaultOptions),this.setFeatureStyle(t,i)),this},setFeatureStyle:function(t,e){var i=this._layers[t];return"function"==typeof e&&(e=e(i.feature)),i.setStyle&&i.setStyle(e),this},eachFeature:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},getFeature:function(t){return this._layers[t]},bringToBack:function(){this.eachFeature(function(t){t.bringToBack&&t.bringToBack()})},bringToFront:function(){this.eachFeature(function(t){t.bringToFront&&t.bringToFront()})},redraw:function(t){return t&&this._redraw(t),this},_redraw:function(t){var e=this._layers[t],i=e.feature;if(e&&e.setIcon&&this.options.pointToLayer&&this.options.pointToLayer){var s=this.options.pointToLayer(i,L.latLng(i.geometry.coordinates[1],i.geometry.coordinates[0])),r=s.options.icon;e.setIcon(r)}if(e&&e.setStyle&&this.options.pointToLayer){var o=this.options.pointToLayer(i,L.latLng(i.geometry.coordinates[1],i.geometry.coordinates[0])),n=o.options;this.setFeatureStyle(i.id,n)}e&&e.setStyle&&this.options.style&&this.resetStyle(i.id)}});t.FeatureLayer=_t,t.featureLayer=N;var vt="2.0.0-beta.3",Lt={Task:$,task:P,Query:Y,query:F,Find:et,find:C,Identify:it,identify:O,IdentifyFeatures:st,identifyFeatures:k,IdentifyImage:rt,identifyImage:M},bt={Service:ot,service:q,MapService:nt,mapService:G,ImageService:at,imageService:E,FeatureLayerService:lt,featureLayerService:A},xt={BasemapLayer:ct,basemapLayer:j,TiledMapLayer:pt,tiledMapLayer:B,RasterLayer:dt,ImageMapLayer:mt,imageMapLayer:U,DynamicMapLayer:ft,dynamicMapLayer:z,FeatureGrid:yt,FeatureManager:gt,FeatureLayer:_t,featureLayer:N},St="undefined"==typeof define?!1:define.amd&&"function"==typeof define,Tt="object"==typeof t&&"undefined"!=typeof module,It=window&&window.System;(St||Tt||It)&&window&&window.L&&(window.L.esri={VERSION:vt,Support:Q,Util:V,get:K,post:T,request:w,Tasks:Lt,Services:bt,Layers:xt,BasemapLayer:ct,basemapLayer:j,TiledMapLayer:pt,tiledMapLayer:B,RasterLayer:dt,ImageMapLayer:mt,imageMapLayer:U,DynamicMapLayer:ft,dynamicMapLayer:z,FeatureGrid:yt,FeatureManager:gt,FeatureLayer:_t,featureLayer:N}),t.VERSION=vt,t.Tasks=Lt,t.Services=bt,t.Layers=xt}); +//# sourceMappingURL=./esri-leaflet.js.map \ No newline at end of file diff --git a/dist/esri-leaflet.js.map b/dist/esri-leaflet.js.map new file mode 100644 index 000000000..a19d87a95 --- /dev/null +++ b/dist/esri-leaflet.js.map @@ -0,0 +1 @@ +{"version":3,"file":"esri-leaflet-src.js","sources":["..//Users/patricklocal/code/esri-leaflet/src/Support.js","..//Users/patricklocal/code/esri-leaflet/src/Util.js","..//Users/patricklocal/code/esri-leaflet/src/Request.js","..//Users/patricklocal/code/esri-leaflet/src/Tasks/Task.js","..//Users/patricklocal/code/esri-leaflet/src/Tasks/Query.js","..//Users/patricklocal/code/esri-leaflet/src/Tasks/Find.js","..//Users/patricklocal/code/esri-leaflet/src/Tasks/Identify.js","..//Users/patricklocal/code/esri-leaflet/src/Tasks/IdentifyFeatures.js","..//Users/patricklocal/code/esri-leaflet/src/Tasks/IdentifyImage.js","..//Users/patricklocal/code/esri-leaflet/src/Services/Service.js","..//Users/patricklocal/code/esri-leaflet/src/Services/MapService.js","..//Users/patricklocal/code/esri-leaflet/src/Services/ImageService.js","..//Users/patricklocal/code/esri-leaflet/src/Services/FeatureLayerService.js","..//Users/patricklocal/code/esri-leaflet/src/Controls/Logo.js","..//Users/patricklocal/code/esri-leaflet/src/Layers/BasemapLayer.js","..//Users/patricklocal/code/esri-leaflet/src/Layers/TiledMapLayer.js","..//Users/patricklocal/code/esri-leaflet/src/Layers/RasterLayer.js","..//Users/patricklocal/code/esri-leaflet/src/Layers/ImageMapLayer.js","..//Users/patricklocal/code/esri-leaflet/src/Layers/DynamicMapLayer.js","..//Users/patricklocal/code/esri-leaflet/src/Layers/FeatureLayer/FeatureGrid.js","..//Users/patricklocal/code/esri-leaflet/src/Layers/FeatureLayer/FeatureManager.js","..//Users/patricklocal/code/esri-leaflet/src/Layers/FeatureLayer/FeatureLayer.js","..//Users/patricklocal/code/esri-leaflet/src/EsriLeaflet.js"],"names":["pointsEqual","a","b","i","length","closeRing","coordinates","push","ringIsClockwise","ringToTest","pt2","total","rLength","pt1","vertexIntersectsVertex","a1","a2","b1","b2","uaT","ubT","uB","ua","ub","arrayIntersectsArray","j","coordinatesContainPoint","point","contains","l","coordinatesContainCoordinates","outer","inner","intersects","convertRingsToGeoJSON","rings","x","outerRing","hole","outerRings","holes","r","ring","slice","polygon","uncontainedHoles","pop","contained","reverse","type","orientRings","poly","output","shift","flattenMultiPolygonRings","shallowClone","obj","target","hasOwnProperty","extentToBounds","extent","sw","L","latLng","ymin","xmin","ne","ymax","xmax","LatLngBounds","boundsToExtent","bounds","latLngBounds","getSouthWest","lng","lat","getNorthEast","spatialReference","wkid","arcgisToGeojson","arcgis","idAttribute","geojson","y","points","paths","geometry","attributes","properties","id","OBJECTID","FID","geojsonToArcGIS","result","features","geometries","responseToFeatureCollection","response","objectIdField","objectIdFieldName","fields","name","featureCollection","results","cleanUrl","url","Util","trim","isArcgisOnline","test","geojsonTypeToArcGIS","geoJsonType","arcgisGeometryType","warn","console","apply","arguments","serialize","params","data","f","key","value","param","Object","prototype","toString","call","JSON","stringify","join","valueOf","encodeURIComponent","createRequest","callback","context","httpRequest","window","XMLHttpRequest","onerror","e","onreadystatechange","falseFn","error","code","message","readyState","parse","responseText","xmlHttpPost","open","setRequestHeader","send","xmlHttpGet","request","paramString","requestLength","Support","cors","jsonp","callbackId","callbacks","script","DomUtil","create","document","body","src","_EsriLeafletCallbacks","responseType","abort","_callback","task","options","Task","query","Query","find","Find","identify","Identify","identifyFeatures","IdentifyFeatures","identifyImage","IdentifyImage","service","Service","mapService","MapService","imageService","ImageService","featureLayerService","FeatureLayerService","logo","Logo","basemapLayer","BasemapLayer","tiledMapLayer","TiledMapLayer","imageMapLayer","ImageMapLayer","dynamicMapLayer","DynamicMapLayer","BinarySearchIndex","values","this","featureLayer","FeatureLayer","pointerEvents","documentElement","style","exports","get","CORS","JSONP","Request","post","Class","extend","proxy","useCors","generateSetter","bind","initialize","endpoint","_service","setOptions","setters","setter","token","authenticate","path","_request","method","offset","limit","precision","featureIds","returnGeometry","where","outSr","outFields","within","_setGeometry","spatialRel","crosses","touches","overlaps","nearby","latlng","radius","geometryType","units","distance","inSr","string","between","start","end","time","simplify","map","factor","mapWidth","Math","abs","getBounds","getWest","getEast","maxAllowableOffset","getSize","orderBy","fieldName","order","orderByFields","run","_cleanParams","_trapSQLerrors","count","returnCountOnly","ids","returnIdsOnly","objectIds","returnExtentOnly","pixelSize","layer","getLatLng","LatLng","GeoJSON","getLayers","feature","toGeoJSON","Query_js","text","sr","layers","dynamicLayers","returnZ","returnM","gdbVersion","layerDefs","tolerance","on","size","imageDisplay","mapExtent","at","layerDef","undefined","layerId","setMosaicRule","setRenderingRule","setPixelSize","returnCatalogItems","getMosaicRule","mosaicRule","getRenderingRule","renderingRule","getPixelSize","_responseToGeoJSON","location","catalogItems","catalogItemVisibilities","geoJSON","pixel","crs","objectId","Values","catalogItemVisibility","Evented","_requestQueue","_authenticating","metadata","_runQueue","fire","wrappedCallback","_createServiceCallback","addFeature","addResults","updateFeature","updateResults","deleteFeature","deleteResults","deleteFeatures","Control","position","marginTop","marginLeft","marginBottom","marginRight","onAdd","div","innerHTML","_adjustLogo","_map","_size","newSize","mapSize","tileProtocol","protocol","TileLayer","statics","TILES","Streets","urlTemplate","attributionUrl","hideLogo","logoPosition","minZoom","maxZoom","subdomains","attribution","Topographic","Oceans","OceansLabels","pane","NationalGeographic","DarkGray","DarkGrayLabels","Gray","GrayLabels","Imagery","ImageryLabels","ImageryTransportation","ShadedRelief","ShadedReliefLabels","Terrain","TerrainLabels","config","Error","tileOptions","_getAttributionData","_logo","_hasEsriLogo","addTo","_initPane","_updateMapAttribution","onRemove","_container","removeControl","off","getAttribution","getPane","createPane","zIndex","attributions","_attributions","c","contributors","contributor","coverageAreas","coverageArea","southWest","bbox","northEast","score","zoomMin","zoomMax","sort","attributionControl","newAttributions","zoom","getZoom","match","substr","attributionElement","querySelector","maxWidth","zoomOffsetAllowance","correctZoomLevels","MercatorZoomLevels","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","tileUrl","addEventParent","replace","getTileUrl","tilePoint","template","s","_getSubdomain","z","_lodMap","latestWkid","arcgisLODs","tileInfo","lods","correctResolutions","arcgisLOD","ci","correctRes","_withinPercentage","resolution","level","tokenQs","percentage","diff","RasterLayer","Layer","opacity","interactive","alt","_update","throttle","updateInterval","split","bboxSR","imageSR","_currentImage","_bounds","equals","addLayer","removeLayer","_popup","_getPopupData","_resetPopupState","getEvents","moveend","bindPopup","fn","popupOptions","_shouldRenderPopup","_lastClick","popup","_popupFunction","unbindPopup","closePopup","bringToFront","bringToBack","getOpacity","setOpacity","getTimeRange","from","to","setTimeRange","_renderImage","image","ImageOverlay","crossOrigin","once","newImage","oldImage","_animatingZoom","_panTransition","_inProgress","_buildExportParams","_requestExport","_renderPopup","content","setLatLng","setContent","openOn","format","transparent","setPixelType","pixelType","getPixelType","setBandIds","bandIds","isArray","getBandIds","setNoData","noData","noDataInterpretation","getNoData","getNoDataInterpretation","setTimeout","identifyRequest","project","_northEast","_southWest","interpolation","compressionQuality","href","getParamString","timeOptions","getDynamicLayers","setDynamicLayers","setLayers","getLayerDefs","setLayerDefs","getTimeOptions","setTimeOptions","top","latLngToLayerPoint","bottom","dpi","FeatureGrid","cellSize","_reset","removeEventListener","_removeCells","events","zoomend","removeFrom","_cells","_activeCells","_cellsToLoad","_cellsTotal","_cellNumBounds","_getCellNumBounds","_resetWrap","infinite","_getCellSize","wrapLng","_wrapLng","floor","ceil","wrapLat","_wrapLat","getPixelBounds","cellBounds","min","divideBy","max","_removeOtherCells","_addCells","coords","queue","center","getCenter","Point","_isValidCell","cellsToLoad","distanceTo","_addCell","_cellCoordsToBounds","nwPoint","multiplyBy","sePoint","add","nw","wrapLatLng","unproject","se","_cellCoordsToKey","_keyToCellCoords","kArr","parseInt","_removeCell","cell","cellLeave","_wrapCoords","cellEnter","createCell","wrapNum","getPixelWorldBounds","subtract","FeatureManager","timeField","timeFilterMode","simplifyFactor","oidCheck","_startTimeIndex","_endTimeIndex","_timeIndex","_cache","_currentSnapshot","_activeRequests","_requestFeatures","_buildQuery","exceededTransferLimit","requestAnimFrame","_addFeatures","_postProcessFeatures","_cacheKey","_buildTimeIndexes","createLayers","setWhere","oldSnapshot","newSnapshot","pendingRequests","requestError","requestCallback","removeLayers","addLayers","getWhere","oldFrom","oldTo","_filterExistingFeatures","refresh","redraw","eachFeature","_redraw","newFrom","newTo","layersToRemove","_getFeaturesInTimeRange","layersToAdd","indexOf","shouldRemoveLayer","splice","search","startTimes","endTimes","concat","startTimeEntries","endTimeEntries","Date","bulkAdd","timeEntries","_featureWithinTimeRange","date","startDate","endDate","_getMetadata","_metadata","_query","currentIndex","currentElement","minIndex","maxIndex","round","dirty","startIndex","endIndex","items","cacheLayers","_originalStyle","_layers","_zooming","createNewLayer","geometryToLayer","defaultOptions","_updateLayer","latlngs","coordsToLatLng","coordsToLatLngs","setLatLngs","newLayer","hasLayer","onEachFeature","setFeatureStyle","permanent","cacheKey","cellKey","mapBounds","removable","resetStyle","resetFeatureStyle","setStyle","Path","getFeature","setIcon","pointToLayer","getIcon","updatedIcon","icon","getStyle","updatedStyle","VERSION","Tasks","Services","Layers","_isAmd","define","amd","_isCjs","module","_isSystem","System","esri"],"mappings":"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","sourcesContent":["export var cors = ((window.XMLHttpRequest && 'withCredentials' in new window.XMLHttpRequest()));\nexport var pointerEvents = document.documentElement.style.pointerEvents === '';\n\nexport var Support = {\n cors: cors,\n pointerEvents: pointerEvents\n};\n\nexport default Support;\n","import L from 'leaflet';\n\n// checks if 2 x,y points are equal\nfunction pointsEqual (a, b) {\n for (var i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n\n// checks if the first and last points of a ring are equal and closes the ring\nfunction closeRing (coordinates) {\n if (!pointsEqual(coordinates[0], coordinates[coordinates.length - 1])) {\n coordinates.push(coordinates[0]);\n }\n return coordinates;\n}\n\n// determine if polygon ring coordinates are clockwise. clockwise signifies outer ring, counter-clockwise an inner ring\n// or hole. this logic was found at http://stackoverflow.com/questions/1165647/how-to-determine-if-a-list-of-polygon-\n// points-are-in-clockwise-order\nfunction ringIsClockwise (ringToTest) {\n var total = 0;\n var i = 0;\n var rLength = ringToTest.length;\n var pt1 = ringToTest[i];\n var pt2;\n for (i; i < rLength - 1; i++) {\n pt2 = ringToTest[i + 1];\n total += (pt2[0] - pt1[0]) * (pt2[1] + pt1[1]);\n pt1 = pt2;\n }\n return (total >= 0);\n}\n\n// ported from terraformer.js https://github.com/Esri/Terraformer/blob/master/terraformer.js#L504-L519\nfunction vertexIntersectsVertex (a1, a2, b1, b2) {\n var uaT = (b2[0] - b1[0]) * (a1[1] - b1[1]) - (b2[1] - b1[1]) * (a1[0] - b1[0]);\n var ubT = (a2[0] - a1[0]) * (a1[1] - b1[1]) - (a2[1] - a1[1]) * (a1[0] - b1[0]);\n var uB = (b2[1] - b1[1]) * (a2[0] - a1[0]) - (b2[0] - b1[0]) * (a2[1] - a1[1]);\n\n if (uB !== 0) {\n var ua = uaT / uB;\n var ub = ubT / uB;\n\n if (ua >= 0 && ua <= 1 && ub >= 0 && ub <= 1) {\n return true;\n }\n }\n\n return false;\n}\n\n// ported from terraformer.js https://github.com/Esri/Terraformer/blob/master/terraformer.js#L521-L531\nfunction arrayIntersectsArray (a, b) {\n for (var i = 0; i < a.length - 1; i++) {\n for (var j = 0; j < b.length - 1; j++) {\n if (vertexIntersectsVertex(a[i], a[i + 1], b[j], b[j + 1])) {\n return true;\n }\n }\n }\n\n return false;\n}\n\n// ported from terraformer.js https://github.com/Esri/Terraformer/blob/master/terraformer.js#L470-L480\nfunction coordinatesContainPoint (coordinates, point) {\n var contains = false;\n for (var i = -1, l = coordinates.length, j = l - 1; ++i < l; j = i) {\n if (((coordinates[i][1] <= point[1] && point[1] < coordinates[j][1]) ||\n (coordinates[j][1] <= point[1] && point[1] < coordinates[i][1])) &&\n (point[0] < (coordinates[j][0] - coordinates[i][0]) * (point[1] - coordinates[i][1]) / (coordinates[j][1] - coordinates[i][1]) + coordinates[i][0])) {\n contains = !contains;\n }\n }\n return contains;\n}\n\n// ported from terraformer-arcgis-parser.js https://github.com/Esri/terraformer-arcgis-parser/blob/master/terraformer-arcgis-parser.js#L106-L113\nfunction coordinatesContainCoordinates (outer, inner) {\n var intersects = arrayIntersectsArray(outer, inner);\n var contains = coordinatesContainPoint(outer, inner[0]);\n if (!intersects && contains) {\n return true;\n }\n return false;\n}\n\n// do any polygons in this array contain any other polygons in this array?\n// used for checking for holes in arcgis rings\n// ported from terraformer-arcgis-parser.js https://github.com/Esri/terraformer-arcgis-parser/blob/master/terraformer-arcgis-parser.js#L117-L172\nfunction convertRingsToGeoJSON (rings) {\n var outerRings = [];\n var holes = [];\n var x; // iterator\n var outerRing; // current outer ring being evaluated\n var hole; // current hole being evaluated\n\n // for each ring\n for (var r = 0; r < rings.length; r++) {\n var ring = closeRing(rings[r].slice(0));\n if (ring.length < 4) {\n continue;\n }\n // is this ring an outer ring? is it clockwise?\n if (ringIsClockwise(ring)) {\n var polygon = [ ring ];\n outerRings.push(polygon); // push to outer rings\n } else {\n holes.push(ring); // counterclockwise push to holes\n }\n }\n\n var uncontainedHoles = [];\n\n // while there are holes left...\n while (holes.length) {\n // pop a hole off out stack\n hole = holes.pop();\n\n // loop over all outer rings and see if they contain our hole.\n var contained = false;\n for (x = outerRings.length - 1; x >= 0; x--) {\n outerRing = outerRings[x][0];\n if (coordinatesContainCoordinates(outerRing, hole)) {\n // the hole is contained push it into our polygon\n outerRings[x].push(hole);\n contained = true;\n break;\n }\n }\n\n // ring is not contained in any outer ring\n // sometimes this happens https://github.com/Esri/esri-leaflet/issues/320\n if (!contained) {\n uncontainedHoles.push(hole);\n }\n }\n\n // if we couldn't match any holes using contains we can try intersects...\n while (uncontainedHoles.length) {\n // pop a hole off out stack\n hole = uncontainedHoles.pop();\n\n // loop over all outer rings and see if any intersect our hole.\n var intersects = false;\n\n for (x = outerRings.length - 1; x >= 0; x--) {\n outerRing = outerRings[x][0];\n if (arrayIntersectsArray(outerRing, hole)) {\n // the hole is contained push it into our polygon\n outerRings[x].push(hole);\n intersects = true;\n break;\n }\n }\n\n if (!intersects) {\n outerRings.push([hole.reverse()]);\n }\n }\n\n if (outerRings.length === 1) {\n return {\n type: 'Polygon',\n coordinates: outerRings[0]\n };\n } else {\n return {\n type: 'MultiPolygon',\n coordinates: outerRings\n };\n }\n}\n\n// This function ensures that rings are oriented in the right directions\n// outer rings are clockwise, holes are counterclockwise\n// used for converting GeoJSON Polygons to ArcGIS Polygons\nfunction orientRings (poly) {\n var output = [];\n var polygon = poly.slice(0);\n var outerRing = closeRing(polygon.shift().slice(0));\n if (outerRing.length >= 4) {\n if (!ringIsClockwise(outerRing)) {\n outerRing.reverse();\n }\n\n output.push(outerRing);\n\n for (var i = 0; i < polygon.length; i++) {\n var hole = closeRing(polygon[i].slice(0));\n if (hole.length >= 4) {\n if (ringIsClockwise(hole)) {\n hole.reverse();\n }\n output.push(hole);\n }\n }\n }\n\n return output;\n}\n\n// This function flattens holes in multipolygons to one array of polygons\n// used for converting GeoJSON Polygons to ArcGIS Polygons\nfunction flattenMultiPolygonRings (rings) {\n var output = [];\n for (var i = 0; i < rings.length; i++) {\n var polygon = orientRings(rings[i]);\n for (var x = polygon.length - 1; x >= 0; x--) {\n var ring = polygon[x].slice(0);\n output.push(ring);\n }\n }\n return output;\n}\n\n// shallow object clone for feature properties and attributes\n// from http://jsperf.com/cloning-an-object/2\nfunction shallowClone (obj) {\n var target = {};\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n target[i] = obj[i];\n }\n }\n return target;\n}\n\n// convert an extent (ArcGIS) to LatLngBounds (Leaflet)\nexport function extentToBounds (extent) {\n var sw = L.latLng(extent.ymin, extent.xmin);\n var ne = L.latLng(extent.ymax, extent.xmax);\n return new L.LatLngBounds(sw, ne);\n}\n\n// convert an LatLngBounds (Leaflet) to extent (ArcGIS)\nexport function boundsToExtent (bounds) {\n bounds = L.latLngBounds(bounds);\n return {\n 'xmin': bounds.getSouthWest().lng,\n 'ymin': bounds.getSouthWest().lat,\n 'xmax': bounds.getNorthEast().lng,\n 'ymax': bounds.getNorthEast().lat,\n 'spatialReference': {\n 'wkid': 4326\n }\n };\n}\n\nexport function arcgisToGeojson (arcgis, idAttribute) {\n var geojson = {};\n\n if (typeof arcgis.x === 'number' && typeof arcgis.y === 'number') {\n geojson.type = 'Point';\n geojson.coordinates = [arcgis.x, arcgis.y];\n }\n\n if (arcgis.points) {\n geojson.type = 'MultiPoint';\n geojson.coordinates = arcgis.points.slice(0);\n }\n\n if (arcgis.paths) {\n if (arcgis.paths.length === 1) {\n geojson.type = 'LineString';\n geojson.coordinates = arcgis.paths[0].slice(0);\n } else {\n geojson.type = 'MultiLineString';\n geojson.coordinates = arcgis.paths.slice(0);\n }\n }\n\n if (arcgis.rings) {\n geojson = convertRingsToGeoJSON(arcgis.rings.slice(0));\n }\n\n if (arcgis.geometry || arcgis.attributes) {\n geojson.type = 'Feature';\n geojson.geometry = (arcgis.geometry) ? arcgisToGeojson(arcgis.geometry) : null;\n geojson.properties = (arcgis.attributes) ? shallowClone(arcgis.attributes) : null;\n if (arcgis.attributes) {\n geojson.id = arcgis.attributes[idAttribute] || arcgis.attributes.OBJECTID || arcgis.attributes.FID;\n }\n }\n\n return geojson;\n}\n\n// GeoJSON -> ArcGIS\nexport function geojsonToArcGIS (geojson, idAttribute) {\n idAttribute = idAttribute || 'OBJECTID';\n var spatialReference = { wkid: 4326 };\n var result = {};\n var i;\n\n switch (geojson.type) {\n case 'Point':\n result.x = geojson.coordinates[0];\n result.y = geojson.coordinates[1];\n result.spatialReference = spatialReference;\n break;\n case 'MultiPoint':\n result.points = geojson.coordinates.slice(0);\n result.spatialReference = spatialReference;\n break;\n case 'LineString':\n result.paths = [geojson.coordinates.slice(0)];\n result.spatialReference = spatialReference;\n break;\n case 'MultiLineString':\n result.paths = geojson.coordinates.slice(0);\n result.spatialReference = spatialReference;\n break;\n case 'Polygon':\n result.rings = orientRings(geojson.coordinates.slice(0));\n result.spatialReference = spatialReference;\n break;\n case 'MultiPolygon':\n result.rings = flattenMultiPolygonRings(geojson.coordinates.slice(0));\n result.spatialReference = spatialReference;\n break;\n case 'Feature':\n if (geojson.geometry) {\n result.geometry = geojsonToArcGIS(geojson.geometry, idAttribute);\n }\n result.attributes = (geojson.properties) ? shallowClone(geojson.properties) : {};\n if (geojson.id) {\n result.attributes[idAttribute] = geojson.id;\n }\n break;\n case 'FeatureCollection':\n result = [];\n for (i = 0; i < geojson.features.length; i++) {\n result.push(geojsonToArcGIS(geojson.features[i], idAttribute));\n }\n break;\n case 'GeometryCollection':\n result = [];\n for (i = 0; i < geojson.geometries.length; i++) {\n result.push(geojsonToArcGIS(geojson.geometries[i], idAttribute));\n }\n break;\n }\n\n return result;\n}\n\nexport function responseToFeatureCollection (response, idAttribute) {\n var objectIdField;\n\n if (idAttribute) {\n objectIdField = idAttribute;\n } else if (response.objectIdFieldName) {\n objectIdField = response.objectIdFieldName;\n } else if (response.fields) {\n for (var j = 0; j <= response.fields.length - 1; j++) {\n if (response.fields[j].type === 'esriFieldTypeOID') {\n objectIdField = response.fields[j].name;\n break;\n }\n }\n } else {\n objectIdField = 'OBJECTID';\n }\n\n var featureCollection = {\n type: 'FeatureCollection',\n features: []\n };\n var features = response.features || response.results;\n if (features.length) {\n for (var i = features.length - 1; i >= 0; i--) {\n featureCollection.features.push(arcgisToGeojson(features[i], objectIdField));\n }\n }\n\n return featureCollection;\n}\n\n // trim url whitespace and add a trailing slash if needed\nexport function cleanUrl (url) {\n // trim leading and trailing spaces, but not spaces inside the url\n url = L.Util.trim(url);\n\n // add a trailing slash to the url if the user omitted it\n if (url[url.length - 1] !== '/') {\n url += '/';\n }\n\n return url;\n}\n\nexport function isArcgisOnline (url) {\n /* hosted feature services can emit geojson natively.\n our check for 'geojson' support will need to be revisted\n once the functionality makes its way to ArcGIS Server*/\n return (/\\.arcgis\\.com.*?FeatureServer/g).test(url);\n}\n\nexport function geojsonTypeToArcGIS (geoJsonType) {\n var arcgisGeometryType;\n switch (geoJsonType) {\n case 'Point':\n arcgisGeometryType = 'esriGeometryPoint';\n break;\n case 'MultiPoint':\n arcgisGeometryType = 'esriGeometryMultipoint';\n break;\n case 'LineString':\n arcgisGeometryType = 'esriGeometryPolyline';\n break;\n case 'MultiLineString':\n arcgisGeometryType = 'esriGeometryPolyline';\n break;\n case 'Polygon':\n arcgisGeometryType = 'esriGeometryPolygon';\n break;\n case 'MultiPolygon':\n arcgisGeometryType = 'esriGeometryPolygon';\n break;\n }\n\n return arcgisGeometryType;\n}\n\nexport function warn () {\n if (console && console.warn) {\n console.warn.apply(console, arguments);\n }\n}\n\nexport var Util = {\n shallowClone: shallowClone,\n warn: warn,\n cleanUrl: cleanUrl,\n isArcgisOnline: isArcgisOnline,\n geojsonTypeToArcGIS: geojsonTypeToArcGIS,\n responseToFeatureCollection: responseToFeatureCollection,\n geojsonToArcGIS: geojsonToArcGIS,\n arcgisToGeojson: arcgisToGeojson,\n boundsToExtent: boundsToExtent,\n extentToBounds: extentToBounds\n};\n\nexport default Util;\n","import L from 'leaflet';\nimport Support from './Support.js';\nimport {warn} from './Util.js';\n\nvar callbacks = 0;\n\nwindow._EsriLeafletCallbacks = {};\n\nfunction serialize (params) {\n var data = '';\n\n params.f = params.f || 'json';\n\n for (var key in params) {\n if (params.hasOwnProperty(key)) {\n var param = params[key];\n var type = Object.prototype.toString.call(param);\n var value;\n\n if (data.length) {\n data += '&';\n }\n\n if (type === '[object Array]') {\n value = (Object.prototype.toString.call(param[0]) === '[object Object]') ? JSON.stringify(param) : param.join(',');\n } else if (type === '[object Object]') {\n value = JSON.stringify(param);\n } else if (type === '[object Date]') {\n value = param.valueOf();\n } else {\n value = param;\n }\n\n data += encodeURIComponent(key) + '=' + encodeURIComponent(value);\n }\n }\n\n return data;\n}\n\nfunction createRequest (callback, context) {\n var httpRequest = new window.XMLHttpRequest();\n\n httpRequest.onerror = function (e) {\n httpRequest.onreadystatechange = L.Util.falseFn;\n\n callback.call(context, {\n error: {\n code: 500,\n message: 'XMLHttpRequest error'\n }\n }, null);\n };\n\n httpRequest.onreadystatechange = function () {\n var response;\n var error;\n\n if (httpRequest.readyState === 4) {\n try {\n response = JSON.parse(httpRequest.responseText);\n } catch(e) {\n response = null;\n error = {\n code: 500,\n message: 'Could not parse response as JSON. This could also be caused by a CORS or XMLHttpRequest error.'\n };\n }\n\n if (!error && response.error) {\n error = response.error;\n response = null;\n }\n\n httpRequest.onerror = L.Util.falseFn;\n\n callback.call(context, error, response);\n }\n };\n\n return httpRequest;\n}\n\nfunction xmlHttpPost (url, params, callback, context) {\n var httpRequest = createRequest(callback, context);\n httpRequest.open('POST', url);\n httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n httpRequest.send(serialize(params));\n\n return httpRequest;\n}\n\nfunction xmlHttpGet (url, params, callback, context) {\n var httpRequest = createRequest(callback, context);\n\n httpRequest.open('GET', url + '?' + serialize(params), true);\n httpRequest.send(null);\n\n return httpRequest;\n}\n\n// AJAX handlers for CORS (modern browsers) or JSONP (older browsers)\nexport function request (url, params, callback, context) {\n var paramString = serialize(params);\n var httpRequest = createRequest(callback, context);\n var requestLength = (url + '?' + paramString).length;\n\n // request is less then 2000 characters and the browser supports CORS, make GET request with XMLHttpRequest\n if (requestLength <= 2000 && Support.cors) {\n httpRequest.open('GET', url + '?' + paramString);\n httpRequest.send(null);\n\n // request is less more then 2000 characters and the browser supports CORS, make POST request with XMLHttpRequest\n } else if (requestLength > 2000 && Support.cors) {\n httpRequest.open('POST', url);\n httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n httpRequest.send(paramString);\n\n // request is less more then 2000 characters and the browser does not support CORS, make a JSONP request\n } else if (requestLength <= 2000 && !Support.cors) {\n return jsonp(url, params, callback, context);\n\n // request is longer then 2000 characters and the browser does not support CORS, log a warning\n } else {\n warn('a request to ' + url + ' was longer then 2000 characters and this browser cannot make a cross-domain post request. Please use a proxy http://esri.github.io/esri-leaflet/api-reference/request.html');\n return;\n }\n\n return httpRequest;\n}\n\nexport function jsonp (url, params, callback, context) {\n var callbackId = 'c' + callbacks;\n\n params.callback = 'window._EsriLeafletCallbacks.' + callbackId;\n\n var script = L.DomUtil.create('script', null, document.body);\n script.type = 'text/javascript';\n script.src = url + '?' + serialize(params);\n script.id = callbackId;\n\n window._EsriLeafletCallbacks[callbackId] = function (response) {\n if (window._EsriLeafletCallbacks[callbackId] !== true) {\n var error;\n var responseType = Object.prototype.toString.call(response);\n\n if (!(responseType === '[object Object]' || responseType === '[object Array]')) {\n error = {\n error: {\n code: 500,\n message: 'Expected array or object as JSONP response'\n }\n };\n response = null;\n }\n\n if (!error && response.error) {\n error = response;\n response = null;\n }\n\n callback.call(context, error, response);\n window._EsriLeafletCallbacks[callbackId] = true;\n }\n };\n\n callbacks++;\n\n return {\n id: callbackId,\n url: script.src,\n abort: function () {\n window._EsriLeafletCallbacks._callback[callbackId]({\n code: 0,\n message: 'Request aborted.'\n });\n }\n };\n}\n\nvar get = ((Support.cors) ? xmlHttpGet : jsonp);\nget.CORS = xmlHttpGet;\nget.JSONP = jsonp;\n\n// choose the correct AJAX handler depending on CORS support\nexport { get };\n\n// always use XMLHttpRequest for posts\nexport { xmlHttpPost as post };\n\n// export the Request object to call the different handlers for debugging\nexport var Request = {\n request: request,\n get: get,\n post: xmlHttpPost\n};\n\nexport default Request;\n","import L from 'leaflet';\nimport {cors} from '../Support.js';\nimport {cleanUrl} from '../Util.js';\nimport Request from '../Request.js';\n\nexport var Task = L.Class.extend({\n\n options: {\n proxy: false,\n useCors: cors\n },\n\n // Generate a method for each methodName:paramName in the setters for this task.\n generateSetter: function (param, context) {\n return L.Util.bind(function (value) {\n this.params[param] = value;\n return this;\n }, context);\n },\n\n initialize: function (endpoint) {\n // endpoint can be either a url (and options) for an ArcGIS Rest Service or an instance of EsriLeaflet.Service\n if (endpoint.request && endpoint.options) {\n this._service = endpoint;\n L.Util.setOptions(this, endpoint.options);\n } else {\n L.Util.setOptions(this, endpoint);\n this.options.url = cleanUrl(endpoint.url);\n }\n\n // clone default params into this object\n this.params = L.Util.extend({}, this.params || {});\n\n // generate setter methods based on the setters object implimented a child class\n if (this.setters) {\n for (var setter in this.setters) {\n var param = this.setters[setter];\n this[setter] = this.generateSetter(param, this);\n }\n }\n },\n\n token: function (token) {\n if (this._service) {\n this._service.authenticate(token);\n } else {\n this.params.token = token;\n }\n return this;\n },\n\n request: function (callback, context) {\n if (this._service) {\n return this._service.request(this.path, this.params, callback, context);\n }\n\n return this._request('request', this.path, this.params, callback, context);\n },\n\n _request: function (method, path, params, callback, context) {\n var url = (this.options.proxy) ? this.options.proxy + '?' + this.options.url + path : this.options.url + path;\n\n if ((method === 'get' || method === 'request') && !this.options.useCors) {\n return Request.get.JSONP(url, params, callback, context);\n }\n\n return Request[method](url, params, callback, context);\n }\n});\n\nexport function task (options) {\n return new Task(options);\n}\n\nexport default task;\n","import L from 'leaflet';\nimport { Task } from './Task.js';\nimport Util from '../Util.js';\n\nexport var Query = Task.extend({\n setters: {\n 'offset': 'offset',\n 'limit': 'limit',\n 'fields': 'outFields',\n 'precision': 'geometryPrecision',\n 'featureIds': 'objectIds',\n 'returnGeometry': 'returnGeometry',\n 'token': 'token'\n },\n\n path: 'query',\n\n params: {\n returnGeometry: true,\n where: '1=1',\n outSr: 4326,\n outFields: '*'\n },\n\n within: function (geometry) {\n this._setGeometry(geometry);\n this.params.spatialRel = 'esriSpatialRelContains'; // will make code read layer within geometry, to the api this will reads geometry contains layer\n return this;\n },\n\n intersects: function (geometry) {\n this._setGeometry(geometry);\n this.params.spatialRel = 'esriSpatialRelIntersects';\n return this;\n },\n\n contains: function (geometry) {\n this._setGeometry(geometry);\n this.params.spatialRel = 'esriSpatialRelWithin'; // will make code read layer contains geometry, to the api this will reads geometry within layer\n return this;\n },\n\n crosses: function (geometry) {\n this._setGeometry(geometry);\n this.params.spatialRel = 'esriSpatialRelCrosses';\n return this;\n },\n\n touches: function (geometry) {\n this._setGeometry(geometry);\n this.params.spatialRel = 'esriSpatialRelTouches';\n return this;\n },\n\n overlaps: function (geometry) {\n this._setGeometry(geometry);\n this.params.spatialRel = 'esriSpatialRelOverlaps';\n return this;\n },\n\n // only valid for Feature Services running on ArcGIS Server 10.3 or ArcGIS Online\n nearby: function (latlng, radius) {\n latlng = L.latLng(latlng);\n this.params.geometry = [latlng.lng, latlng.lat];\n this.params.geometryType = 'esriGeometryPoint';\n this.params.spatialRel = 'esriSpatialRelIntersects';\n this.params.units = 'esriSRUnit_Meter';\n this.params.distance = radius;\n this.params.inSr = 4326;\n return this;\n },\n\n where: function (string) {\n // instead of converting double-quotes to single quotes, pass as is, and provide a more informative message if a 400 is encountered\n this.params.where = string;\n return this;\n },\n\n between: function (start, end) {\n this.params.time = [start.valueOf(), end.valueOf()];\n return this;\n },\n\n simplify: function (map, factor) {\n var mapWidth = Math.abs(map.getBounds().getWest() - map.getBounds().getEast());\n this.params.maxAllowableOffset = (mapWidth / map.getSize().y) * factor;\n return this;\n },\n\n orderBy: function (fieldName, order) {\n order = order || 'ASC';\n this.params.orderByFields = (this.params.orderByFields) ? this.params.orderByFields + ',' : '';\n this.params.orderByFields += ([fieldName, order]).join(' ');\n return this;\n },\n\n run: function (callback, context) {\n this._cleanParams();\n\n // if the service is hosted on arcgis online request geojson directly\n if (Util.isArcgisOnline(this.options.url)) {\n this.params.f = 'geojson';\n\n return this.request(function (error, response) {\n this._trapSQLerrors(error);\n callback.call(context, error, response, response);\n }, this);\n\n // otherwise convert it in the callback then pass it on\n } else {\n return this.request(function (error, response) {\n this._trapSQLerrors(error);\n callback.call(context, error, (response && Util.responseToFeatureCollection(response)), response);\n }, this);\n }\n },\n\n count: function (callback, context) {\n this._cleanParams();\n this.params.returnCountOnly = true;\n return this.request(function (error, response) {\n callback.call(this, error, (response && response.count), response);\n }, context);\n },\n\n ids: function (callback, context) {\n this._cleanParams();\n this.params.returnIdsOnly = true;\n return this.request(function (error, response) {\n callback.call(this, error, (response && response.objectIds), response);\n }, context);\n },\n\n // only valid for Feature Services running on ArcGIS Server 10.3 or ArcGIS Online\n bounds: function (callback, context) {\n this._cleanParams();\n this.params.returnExtentOnly = true;\n return this.request(function (error, response) {\n callback.call(context, error, (response && response.extent && Util.extentToBounds(response.extent)), response);\n }, context);\n },\n\n // only valid for image services\n pixelSize: function (point) {\n point = L.point(point);\n this.params.pixelSize = [point.x, point.y];\n return this;\n },\n\n // only valid for map services\n layer: function (layer) {\n this.path = layer + '/query';\n return this;\n },\n\n _trapSQLerrors: function (error) {\n if (error) {\n if (error.code === '400') {\n Util.warn('one common syntax error in query requests is encasing string values in double quotes instead of single quotes');\n }\n }\n },\n\n _cleanParams: function () {\n delete this.params.returnIdsOnly;\n delete this.params.returnExtentOnly;\n delete this.params.returnCountOnly;\n },\n\n _setGeometry: function (geometry) {\n this.params.inSr = 4326;\n\n // convert bounds to extent and finish\n if (geometry instanceof L.LatLngBounds) {\n // set geometry + geometryType\n this.params.geometry = Util.boundsToExtent(geometry);\n this.params.geometryType = 'esriGeometryEnvelope';\n return;\n }\n\n // convert L.Marker > L.LatLng\n if (geometry.getLatLng) {\n geometry = geometry.getLatLng();\n }\n\n // convert L.LatLng to a geojson point and continue;\n if (geometry instanceof L.LatLng) {\n geometry = {\n type: 'Point',\n coordinates: [geometry.lng, geometry.lat]\n };\n }\n\n // handle L.GeoJSON, pull out the first geometry\n if (geometry instanceof L.GeoJSON) {\n // reassign geometry to the GeoJSON value (we are assuming that only one feature is present)\n geometry = geometry.getLayers()[0].feature.geometry;\n this.params.geometry = Util.geojsonToArcGIS(geometry);\n this.params.geometryType = Util.geojsonTypeToArcGIS(geometry.type);\n }\n\n // Handle L.Polyline and L.Polygon\n if (geometry.toGeoJSON) {\n geometry = geometry.toGeoJSON();\n }\n\n // handle GeoJSON feature by pulling out the geometry\n if (geometry.type === 'Feature') {\n // get the geometry of the geojson feature\n geometry = geometry.geometry;\n }\n\n // confirm that our GeoJSON is a point, line or polygon\n if (geometry.type === 'Point' || geometry.type === 'LineString' || geometry.type === 'Polygon') {\n this.params.geometry = Util.geojsonToArcGIS(geometry);\n this.params.geometryType = Util.geojsonTypeToArcGIS(geometry.type);\n return;\n }\n\n // warn the user if we havn't found a\n /* global console */\n Util.warn('invalid geometry passed to spatial query. Should be an L.LatLng, L.LatLngBounds or L.Marker or a GeoJSON Point Line or Polygon object');\n\n return;\n }\n});\n\nexport function query (options) {\n return new Query(options);\n}\n\nexport default query;\n","import { Task } from './Task.js';\nimport Util from '../Util.js';\n\nexport var Find = Task.extend({\n setters: {\n // method name > param name\n 'contains': 'contains',\n 'text': 'searchText',\n 'fields': 'searchFields', // denote an array or single string\n 'spatialReference': 'sr',\n 'sr': 'sr',\n 'layers': 'layers',\n 'returnGeometry': 'returnGeometry',\n 'maxAllowableOffset': 'maxAllowableOffset',\n 'precision': 'geometryPrecision',\n 'dynamicLayers': 'dynamicLayers',\n 'returnZ': 'returnZ',\n 'returnM': 'returnM',\n 'gdbVersion': 'gdbVersion',\n 'token': 'token'\n },\n\n path: 'find',\n\n params: {\n sr: 4326,\n contains: true,\n returnGeometry: true,\n returnZ: true,\n returnM: false\n },\n\n layerDefs: function (id, where) {\n this.params.layerDefs = (this.params.layerDefs) ? this.params.layerDefs + ';' : '';\n this.params.layerDefs += ([id, where]).join(':');\n return this;\n },\n\n simplify: function (map, factor) {\n var mapWidth = Math.abs(map.getBounds().getWest() - map.getBounds().getEast());\n this.params.maxAllowableOffset = (mapWidth / map.getSize().y) * factor;\n return this;\n },\n\n run: function (callback, context) {\n return this.request(function (error, response) {\n callback.call(context, error, (response && Util.responseToFeatureCollection(response)), response);\n }, context);\n }\n});\n\nexport function find (options) {\n return new Find(options);\n}\n\nexport default find;\n","import { Task } from './Task.js';\n\nexport var Identify = Task.extend({\n path: 'identify',\n\n between: function (start, end) {\n this.params.time = [start.valueOf(), end.valueOf()];\n return this;\n }\n});\n\nexport function identify (options) {\n return new Identify(options);\n}\n\nexport default identify;\n","import L from 'leaflet';\nimport { Identify } from './Identify.js';\nimport Util from '../Util.js';\n\nexport var IdentifyFeatures = Identify.extend({\n setters: {\n 'layers': 'layers',\n 'precision': 'geometryPrecision',\n 'tolerance': 'tolerance',\n 'returnGeometry': 'returnGeometry'\n },\n\n params: {\n sr: 4326,\n layers: 'all',\n tolerance: 3,\n returnGeometry: true\n },\n\n on: function (map) {\n var extent = Util.boundsToExtent(map.getBounds());\n var size = map.getSize();\n this.params.imageDisplay = [size.x, size.y, 96];\n this.params.mapExtent = [extent.xmin, extent.ymin, extent.xmax, extent.ymax];\n return this;\n },\n\n at: function (latlng) {\n latlng = L.latLng(latlng);\n this.params.geometry = [latlng.lng, latlng.lat];\n this.params.geometryType = 'esriGeometryPoint';\n return this;\n },\n\n layerDef: function (id, where) {\n this.params.layerDefs = (this.params.layerDefs) ? this.params.layerDefs + ';' : '';\n this.params.layerDefs += ([id, where]).join(':');\n return this;\n },\n\n simplify: function (map, factor) {\n var mapWidth = Math.abs(map.getBounds().getWest() - map.getBounds().getEast());\n this.params.maxAllowableOffset = (mapWidth / map.getSize().y) * (1 - factor);\n return this;\n },\n\n run: function (callback, context) {\n return this.request(function (error, response) {\n // immediately invoke with an error\n if (error) {\n callback.call(context, error, undefined, response);\n return;\n\n // ok no error lets just assume we have features...\n } else {\n var featureCollection = Util.responseToFeatureCollection(response);\n response.results = response.results.reverse();\n for (var i = 0; i < featureCollection.features.length; i++) {\n var feature = featureCollection.features[i];\n feature.layerId = response.results[i].layerId;\n }\n callback.call(context, undefined, featureCollection, response);\n }\n });\n }\n});\n\nexport function identifyFeatures (options) {\n return new IdentifyFeatures(options);\n}\n\nexport default identifyFeatures;\n","import L from 'leaflet';\nimport { Identify } from './Identify.js';\nimport Util from '../Util.js';\n\nexport var IdentifyImage = Identify.extend({\n setters: {\n 'setMosaicRule': 'mosaicRule',\n 'setRenderingRule': 'renderingRule',\n 'setPixelSize': 'pixelSize',\n 'returnCatalogItems': 'returnCatalogItems',\n 'returnGeometry': 'returnGeometry'\n },\n\n params: {\n returnGeometry: false\n },\n\n at: function (latlng) {\n latlng = L.latLng(latlng);\n this.params.geometry = JSON.stringify({\n x: latlng.lng,\n y: latlng.lat,\n spatialReference: {\n wkid: 4326\n }\n });\n this.params.geometryType = 'esriGeometryPoint';\n return this;\n },\n\n getMosaicRule: function () {\n return this.params.mosaicRule;\n },\n\n getRenderingRule: function () {\n return this.params.renderingRule;\n },\n\n getPixelSize: function () {\n return this.params.pixelSize;\n },\n\n run: function (callback, context) {\n return this.request(function (error, response) {\n callback.call(context, error, (response && this._responseToGeoJSON(response)), response);\n }, this);\n },\n\n // get pixel data and return as geoJSON point\n // populate catalog items (if any)\n // merging in any catalogItemVisibilities as a propery of each feature\n _responseToGeoJSON: function (response) {\n var location = response.location;\n var catalogItems = response.catalogItems;\n var catalogItemVisibilities = response.catalogItemVisibilities;\n var geoJSON = {\n 'pixel': {\n 'type': 'Feature',\n 'geometry': {\n 'type': 'Point',\n 'coordinates': [location.x, location.y]\n },\n 'crs': {\n 'type': 'EPSG',\n 'properties': {\n 'code': location.spatialReference.wkid\n }\n },\n 'properties': {\n 'OBJECTID': response.objectId,\n 'name': response.name,\n 'value': response.value\n },\n 'id': response.objectId\n }\n };\n\n if (response.properties && response.properties.Values) {\n geoJSON.pixel.properties.values = response.properties.Values;\n }\n\n if (catalogItems && catalogItems.features) {\n geoJSON.catalogItems = Util.responseToFeatureCollection(catalogItems);\n if (catalogItemVisibilities && catalogItemVisibilities.length === geoJSON.catalogItems.features.length) {\n for (var i = catalogItemVisibilities.length - 1; i >= 0; i--) {\n geoJSON.catalogItems.features[i].properties.catalogItemVisibility = catalogItemVisibilities[i];\n }\n }\n }\n return geoJSON;\n }\n\n});\n\nexport function identifyImage (params) {\n return new IdentifyImage(params);\n}\n\nexport default identifyImage;\n","import L from 'leaflet';\nimport {cors} from '../Support.js';\nimport {cleanUrl} from '../Util.js';\nimport Request from '../Request.js';\n\nexport var Service = L.Evented.extend({\n\n options: {\n proxy: false,\n useCors: cors\n },\n\n initialize: function (options) {\n options = options || {};\n this._requestQueue = [];\n this._authenticating = false;\n L.Util.setOptions(this, options);\n this.options.url = cleanUrl(this.options.url);\n },\n\n get: function (path, params, callback, context) {\n return this._request('get', path, params, callback, context);\n },\n\n post: function (path, params, callback, context) {\n return this._request('post', path, params, callback, context);\n },\n\n request: function (path, params, callback, context) {\n return this._request('request', path, params, callback, context);\n },\n\n metadata: function (callback, context) {\n return this._request('get', '', {}, callback, context);\n },\n\n authenticate: function (token) {\n this._authenticating = false;\n this.options.token = token;\n this._runQueue();\n return this;\n },\n\n _request: function (method, path, params, callback, context) {\n this.fire('requeststart', {\n url: this.options.url + path,\n params: params,\n method: method\n }, true);\n\n var wrappedCallback = this._createServiceCallback(method, path, params, callback, context);\n\n if (this.options.token) {\n params.token = this.options.token;\n }\n\n if (this._authenticating) {\n this._requestQueue.push([method, path, params, callback, context]);\n return;\n } else {\n var url = (this.options.proxy) ? this.options.proxy + '?' + this.options.url + path : this.options.url + path;\n\n if ((method === 'get' || method === 'request') && !this.options.useCors) {\n return Request.get.JSONP(url, params, wrappedCallback);\n } else {\n return Request[method](url, params, wrappedCallback);\n }\n }\n },\n\n _createServiceCallback: function (method, path, params, callback, context) {\n return L.Util.bind(function (error, response) {\n if (error && (error.code === 499 || error.code === 498)) {\n this._authenticating = true;\n\n this._requestQueue.push([method, path, params, callback, context]);\n\n // fire an event for users to handle and re-authenticate\n this.fire('authenticationrequired', {\n authenticate: L.Util.bind(this.authenticate, this)\n }, true);\n\n // if the user has access to a callback they can handle the auth error\n error.authenticate = L.Util.bind(this.authenticate, this);\n }\n\n callback.call(context, error, response);\n\n if (error) {\n this.fire('requesterror', {\n url: this.options.url + path,\n params: params,\n message: error.message,\n code: error.code,\n method: method\n }, true);\n } else {\n this.fire('requestsuccess', {\n url: this.options.url + path,\n params: params,\n response: response,\n method: method\n }, true);\n }\n\n this.fire('requestend', {\n url: this.options.url + path,\n params: params,\n method: method\n }, true);\n }, this);\n },\n\n _runQueue: function () {\n for (var i = this._requestQueue.length - 1; i >= 0; i--) {\n var request = this._requestQueue[i];\n var method = request.shift();\n this[method].apply(this, request);\n }\n this._requestQueue = [];\n }\n});\n\nexport function service (options) {\n return new Service(options);\n}\n\nexport default service;\n","import { Service } from './Service.js';\nimport identifyFeatures from '../Tasks/IdentifyFeatures.js';\nimport query from '../Tasks/Query.js';\nimport find from '../Tasks/Find.js';\n\nexport var MapService = Service.extend({\n\n identify: function () {\n return identifyFeatures(this);\n },\n\n find: function () {\n return find(this);\n },\n\n query: function () {\n return query(this);\n }\n\n});\n\nexport function mapService (options) {\n return new MapService(options);\n}\n\nexport default mapService;\n","import { Service } from './Service.js';\nimport identifyImage from '../Tasks/IdentifyImage.js';\nimport query from '../Tasks/Query.js';\n\nexport var ImageService = Service.extend({\n\n query: function () {\n return query(this);\n },\n\n identify: function () {\n return identifyImage(this);\n }\n});\n\nexport function imageService (options) {\n return new ImageService(options);\n}\n\nexport default imageService;\n","import { Service } from './Service.js';\nimport query from '../Tasks/Query.js';\nimport { geojsonToArcGIS } from '../Util.js';\n\nexport var FeatureLayerService = Service.extend({\n\n options: {\n idAttribute: 'OBJECTID'\n },\n\n query: function () {\n return query(this);\n },\n\n addFeature: function (feature, callback, context) {\n delete feature.id;\n\n feature = geojsonToArcGIS(feature);\n\n return this.post('addFeatures', {\n features: [feature]\n }, function (error, response) {\n var result = (response && response.addResults) ? response.addResults[0] : undefined;\n if (callback) {\n callback.call(context, error || response.addResults[0].error, result);\n }\n }, context);\n },\n\n updateFeature: function (feature, callback, context) {\n feature = geojsonToArcGIS(feature, this.options.idAttribute);\n\n return this.post('updateFeatures', {\n features: [feature]\n }, function (error, response) {\n var result = (response && response.updateResults) ? response.updateResults[0] : undefined;\n if (callback) {\n callback.call(context, error || response.updateResults[0].error, result);\n }\n }, context);\n },\n\n deleteFeature: function (id, callback, context) {\n return this.post('deleteFeatures', {\n objectIds: id\n }, function (error, response) {\n var result = (response && response.deleteResults) ? response.deleteResults[0] : undefined;\n if (callback) {\n callback.call(context, error || response.deleteResults[0].error, result);\n }\n }, context);\n },\n\n deleteFeatures: function (ids, callback, context) {\n return this.post('deleteFeatures', {\n objectIds: ids\n }, function (error, response) {\n // pass back the entire array\n var result = (response && response.deleteResults) ? response.deleteResults : undefined;\n if (callback) {\n callback.call(context, error || response.deleteResults[0].error, result);\n }\n }, context);\n }\n});\n\nexport function featureLayerService (options) {\n return new FeatureLayerService(options);\n}\n\nexport default featureLayerService;\n","import L from 'leaflet';\n\nexport var Logo = L.Control.extend({\n options: {\n position: 'bottomright',\n marginTop: 0,\n marginLeft: 0,\n marginBottom: 0,\n marginRight: 0\n },\n\n onAdd: function () {\n var div = L.DomUtil.create('div', 'esri-leaflet-logo');\n div.style.marginTop = this.options.marginTop;\n div.style.marginLeft = this.options.marginLeft;\n div.style.marginBottom = this.options.marginBottom;\n div.style.marginRight = this.options.marginRight;\n div.innerHTML = this._adjustLogo(this._map._size);\n\n this._map.on('resize', function (e) {\n div.innerHTML = this._adjustLogo(e.newSize);\n }, this);\n\n return div;\n },\n\n _adjustLogo: function (mapSize) {\n if (mapSize.x <= 600 || mapSize.y <= 600) {\n return '<a href=\"https://developers.arcgis.com\" style=\"border: none;\"><img src=\"https://js.arcgis.com/3.13/esri/images/map/logo-sm.png\" alt=\"Powered by Esri\" style=\"border: none;\"></a>';\n } else {\n return '<a href=\"https://developers.arcgis.com\" style=\"border: none;\"><img src=\"https://js.arcgis.com/3.13/esri/images/map/logo-med.png\" alt=\"Powered by Esri\" style=\"border: none;\"></a>';\n }\n }\n});\n\nexport default function logo (options) {\n return new Logo(options);\n}\n","import L from 'leaflet';\nimport logo from '../Controls/Logo.js';\nimport { jsonp } from '../Request.js';\nimport { pointerEvents } from '../Support.js';\n\nvar tileProtocol = (window.location.protocol !== 'https:') ? 'http:' : 'https:';\n\nexport var BasemapLayer = L.TileLayer.extend({\n statics: {\n TILES: {\n Streets: {\n urlTemplate: tileProtocol + '//{s}.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}',\n attributionUrl: 'https://static.arcgis.com/attribution/World_Street_Map',\n options: {\n hideLogo: false,\n logoPosition: 'bottomright',\n minZoom: 1,\n maxZoom: 19,\n subdomains: ['server', 'services'],\n attribution: 'Esri'\n }\n },\n Topographic: {\n urlTemplate: tileProtocol + '//{s}.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}',\n attributionUrl: 'https://static.arcgis.com/attribution/World_Topo_Map',\n options: {\n hideLogo: false,\n logoPosition: 'bottomright',\n minZoom: 1,\n maxZoom: 19,\n subdomains: ['server', 'services'],\n attribution: 'Esri'\n }\n },\n Oceans: {\n urlTemplate: tileProtocol + '//{s}.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer/tile/{z}/{y}/{x}',\n attributionUrl: 'https://static.arcgis.com/attribution/Ocean_Basemap',\n options: {\n hideLogo: false,\n logoPosition: 'bottomright',\n minZoom: 1,\n maxZoom: 16,\n subdomains: ['server', 'services'],\n attribution: 'Esri'\n }\n },\n OceansLabels: {\n urlTemplate: tileProtocol + '//{s}.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Reference/MapServer/tile/{z}/{y}/{x}',\n options: {\n hideLogo: true,\n logoPosition: 'bottomright',\n minZoom: 1,\n maxZoom: 16,\n subdomains: ['server', 'services'],\n pane: (pointerEvents) ? 'esri-labels' : 'tilePane'\n }\n },\n NationalGeographic: {\n urlTemplate: tileProtocol + '//{s}.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/tile/{z}/{y}/{x}',\n options: {\n hideLogo: false,\n logoPosition: 'bottomright',\n minZoom: 1,\n maxZoom: 16,\n subdomains: ['server', 'services'],\n attribution: 'Esri'\n }\n },\n DarkGray: {\n urlTemplate: tileProtocol + '//{s}.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Base/MapServer/tile/{z}/{y}/{x}',\n options: {\n hideLogo: false,\n logoPosition: 'bottomright',\n minZoom: 1,\n maxZoom: 16,\n subdomains: ['server', 'services'],\n attribution: 'Esri, DeLorme, HERE'\n }\n },\n DarkGrayLabels: {\n urlTemplate: tileProtocol + '//{s}.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Reference/MapServer/tile/{z}/{y}/{x}',\n options: {\n hideLogo: true,\n logoPosition: 'bottomright',\n minZoom: 1,\n maxZoom: 16,\n subdomains: ['server', 'services'],\n pane: (pointerEvents) ? 'esri-labels' : 'tilePane'\n }\n },\n Gray: {\n urlTemplate: tileProtocol + '//{s}.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}',\n options: {\n hideLogo: false,\n logoPosition: 'bottomright',\n minZoom: 1,\n maxZoom: 16,\n subdomains: ['server', 'services'],\n attribution: 'Esri, NAVTEQ, DeLorme'\n }\n },\n GrayLabels: {\n urlTemplate: tileProtocol + '//{s}.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Reference/MapServer/tile/{z}/{y}/{x}',\n options: {\n hideLogo: true,\n logoPosition: 'bottomright',\n minZoom: 1,\n maxZoom: 16,\n subdomains: ['server', 'services'],\n pane: (pointerEvents) ? 'esri-labels' : 'tilePane'\n }\n },\n Imagery: {\n urlTemplate: tileProtocol + '//{s}.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}',\n options: {\n hideLogo: false,\n logoPosition: 'bottomright',\n minZoom: 1,\n maxZoom: 19,\n subdomains: ['server', 'services'],\n attribution: 'Esri, DigitalGlobe, GeoEye, i-cubed, USDA, USGS, AEX, Getmapping, Aerogrid, IGN, IGP, swisstopo, and the GIS User Community'\n }\n },\n ImageryLabels: {\n urlTemplate: tileProtocol + '//{s}.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places/MapServer/tile/{z}/{y}/{x}',\n options: {\n hideLogo: true,\n logoPosition: 'bottomright',\n minZoom: 1,\n maxZoom: 19,\n subdomains: ['server', 'services'],\n pane: (pointerEvents) ? 'esri-labels' : 'tilePane'\n }\n },\n ImageryTransportation: {\n urlTemplate: tileProtocol + '//{s}.arcgisonline.com/ArcGIS/rest/services/Reference/World_Transportation/MapServer/tile/{z}/{y}/{x}',\n options: {\n hideLogo: true,\n logoPosition: 'bottomright',\n minZoom: 1,\n maxZoom: 19,\n subdomains: ['server', 'services'],\n pane: (pointerEvents) ? 'esri-labels' : 'tilePane'\n }\n },\n ShadedRelief: {\n urlTemplate: tileProtocol + '//{s}.arcgisonline.com/ArcGIS/rest/services/World_Shaded_Relief/MapServer/tile/{z}/{y}/{x}',\n options: {\n hideLogo: false,\n logoPosition: 'bottomright',\n minZoom: 1,\n maxZoom: 13,\n subdomains: ['server', 'services'],\n attribution: 'Esri, NAVTEQ, DeLorme'\n }\n },\n ShadedReliefLabels: {\n urlTemplate: tileProtocol + '//{s}.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places_Alternate/MapServer/tile/{z}/{y}/{x}',\n options: {\n hideLogo: true,\n logoPosition: 'bottomright',\n minZoom: 1,\n maxZoom: 12,\n subdomains: ['server', 'services'],\n pane: (pointerEvents) ? 'esri-labels' : 'tilePane'\n }\n },\n Terrain: {\n urlTemplate: tileProtocol + '//{s}.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer/tile/{z}/{y}/{x}',\n options: {\n hideLogo: false,\n logoPosition: 'bottomright',\n minZoom: 1,\n maxZoom: 13,\n subdomains: ['server', 'services'],\n attribution: 'Esri, USGS, NOAA'\n }\n },\n TerrainLabels: {\n urlTemplate: tileProtocol + '//{s}.arcgisonline.com/ArcGIS/rest/services/Reference/World_Reference_Overlay/MapServer/tile/{z}/{y}/{x}',\n options: {\n hideLogo: true,\n logoPosition: 'bottomright',\n minZoom: 1,\n maxZoom: 13,\n subdomains: ['server', 'services'],\n pane: (pointerEvents) ? 'esri-labels' : 'tilePane'\n }\n }\n }\n },\n initialize: function (key, options) {\n var config;\n\n // set the config variable with the appropriate config object\n if (typeof key === 'object' && key.urlTemplate && key.options) {\n config = key;\n } else if (typeof key === 'string' && BasemapLayer.TILES[key]) {\n config = BasemapLayer.TILES[key];\n } else {\n throw new Error('L.esri.BasemapLayer: Invalid parameter. Use one of \"Streets\", \"Topographic\", \"Oceans\", \"OceansLabels\", \"NationalGeographic\", \"Gray\", \"GrayLabels\", \"DarkGray\", \"DarkGrayLabels\", \"Imagery\", \"ImageryLabels\", \"ImageryTransportation\", \"ShadedRelief\", \"ShadedReliefLabels\", \"Terrain\" or \"TerrainLabels\"');\n }\n\n // merge passed options into the config options\n var tileOptions = L.Util.extend(config.options, options);\n\n // call the initialize method on L.TileLayer to set everything up\n L.TileLayer.prototype.initialize.call(this, config.urlTemplate, L.Util.setOptions(this, tileOptions));\n\n // if this basemap requires dynamic attribution set it up\n if (config.attributionUrl) {\n this._getAttributionData(config.attributionUrl);\n }\n\n this._logo = logo({\n position: this.options.logoPosition\n });\n },\n onAdd: function (map) {\n if (!this.options.hideLogo && !map._hasEsriLogo) {\n this._logo.addTo(map);\n map._hasEsriLogo = true;\n }\n\n if (this.options.pane === 'esri-labels') {\n this._initPane();\n }\n\n L.TileLayer.prototype.onAdd.call(this, map);\n\n map.on('moveend', this._updateMapAttribution, this);\n },\n onRemove: function (map) {\n // check to make sure the logo hasn't already been removed\n if (this._logo && this._logo._container) {\n map.removeControl(this._logo);\n map._hasEsriLogo = false;\n }\n\n L.TileLayer.prototype.onRemove.call(this, map);\n\n map.off('moveend', this._updateMapAttribution, this);\n },\n getAttribution: function () {\n var attribution = '<span class=\"esri-attributions\" style=\"line-height:14px; vertical-align: -3px; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; display:inline-block;\">' + this.options.attribution + '</span>';\n return attribution;\n },\n _initPane: function () {\n if (!this._map.getPane(this.options.pane)) {\n var pane = this._map.createPane(this.options.pane);\n pane.style.pointerEvents = 'none';\n pane.style.zIndex = 500;\n }\n },\n _getAttributionData: function (url) {\n jsonp(url, {}, L.Util.bind(function (error, attributions) {\n if (error) { return; }\n this._attributions = [];\n\n for (var c = 0; c < attributions.contributors.length; c++) {\n var contributor = attributions.contributors[c];\n for (var i = 0; i < contributor.coverageAreas.length; i++) {\n var coverageArea = contributor.coverageAreas[i];\n var southWest = new L.LatLng(coverageArea.bbox[0], coverageArea.bbox[1]);\n var northEast = new L.LatLng(coverageArea.bbox[2], coverageArea.bbox[3]);\n this._attributions.push({\n attribution: contributor.attribution,\n score: coverageArea.score,\n bounds: new L.LatLngBounds(southWest, northEast),\n minZoom: coverageArea.zoomMin,\n maxZoom: coverageArea.zoomMax\n });\n }\n }\n\n this._attributions.sort(function (a, b) {\n return b.score - a.score;\n });\n\n this._updateMapAttribution();\n }, this));\n },\n _updateMapAttribution: function () {\n if (this._map && this._map.attributionControl && this._attributions) {\n var newAttributions = '';\n var bounds = this._map.getBounds();\n var zoom = this._map.getZoom();\n\n for (var i = 0; i < this._attributions.length; i++) {\n var attribution = this._attributions[i];\n var text = attribution.attribution;\n if (!newAttributions.match(text) && bounds.intersects(attribution.bounds) && zoom >= attribution.minZoom && zoom <= attribution.maxZoom) {\n newAttributions += (', ' + text);\n }\n }\n newAttributions = newAttributions.substr(2);\n var attributionElement = this._map.attributionControl._container.querySelector('.esri-attributions');\n\n attributionElement.innerHTML = newAttributions;\n attributionElement.style.maxWidth = (this._map.getSize().x * 0.65) + 'px';\n\n this.fire('attributionupdated', {\n attribution: newAttributions\n });\n }\n }\n});\n\nexport function basemapLayer (key, options) {\n return new BasemapLayer(key, options);\n}\n\nexport default basemapLayer;\n","import L from 'leaflet';\nimport {warn, cleanUrl} from '../Util.js';\nimport mapService from '../Services/MapService.js';\n\nexport var TiledMapLayer = L.TileLayer.extend({\n options: {\n zoomOffsetAllowance: 0.1,\n correctZoomLevels: true\n },\n\n statics: {\n MercatorZoomLevels: {\n '0': 156543.03392799999,\n '1': 78271.516963999893,\n '2': 39135.758482000099,\n '3': 19567.879240999901,\n '4': 9783.9396204999593,\n '5': 4891.9698102499797,\n '6': 2445.9849051249898,\n '7': 1222.9924525624899,\n '8': 611.49622628138002,\n '9': 305.74811314055802,\n '10': 152.874056570411,\n '11': 76.437028285073197,\n '12': 38.218514142536598,\n '13': 19.109257071268299,\n '14': 9.5546285356341496,\n '15': 4.7773142679493699,\n '16': 2.38865713397468,\n '17': 1.1943285668550501,\n '18': 0.59716428355981699,\n '19': 0.29858214164761698,\n '20': 0.14929107082381,\n '21': 0.07464553541191,\n '22': 0.0373227677059525,\n '23': 0.0186613838529763\n }\n },\n\n initialize: function (options) {\n options.url = cleanUrl(options.url);\n options = L.Util.setOptions(this, options);\n\n // set the urls\n this.tileUrl = options.url + 'tile/{z}/{y}/{x}';\n this.service = mapService(options);\n this.service.addEventParent(this);\n\n // if this is looking at the AGO tiles subdomain insert the subdomain placeholder\n if (this.tileUrl.match('://tiles.arcgisonline.com')) {\n this.tileUrl = this.tileUrl.replace('://tiles.arcgisonline.com', '://tiles{s}.arcgisonline.com');\n options.subdomains = ['1', '2', '3', '4'];\n }\n\n if (this.options.token) {\n this.tileUrl += ('?token=' + this.options.token);\n }\n\n // init layer by calling TileLayers initialize method\n L.TileLayer.prototype.initialize.call(this, this.tileUrl, options);\n },\n\n getTileUrl: function (tilePoint) {\n return L.Util.template(this.tileUrl, L.extend({\n s: this._getSubdomain(tilePoint),\n z: this._lodMap[tilePoint.z] || tilePoint.z, // try lod map first, then just defualt to zoom level\n x: tilePoint.x,\n y: tilePoint.y\n }, this.options));\n },\n\n onAdd: function (map) {\n if (!this._lodMap && this.options.correctZoomLevels) {\n this._lodMap = {}; // make sure we always have an lod map even if its empty\n this.metadata(function (error, metadata) {\n if (!error) {\n var sr = metadata.spatialReference.latestWkid || metadata.spatialReference.wkid;\n\n if (sr === 102100 || sr === 3857) {\n // create the zoom level data\n var arcgisLODs = metadata.tileInfo.lods;\n var correctResolutions = TiledMapLayer.MercatorZoomLevels;\n\n for (var i = 0; i < arcgisLODs.length; i++) {\n var arcgisLOD = arcgisLODs[i];\n for (var ci in correctResolutions) {\n var correctRes = correctResolutions[ci];\n\n if (this._withinPercentage(arcgisLOD.resolution, correctRes, this.options.zoomOffsetAllowance)) {\n this._lodMap[ci] = arcgisLOD.level;\n break;\n }\n }\n }\n } else {\n warn('L.esri.TiledMapLayer is using a non-mercator spatial reference. Support may be available through Proj4Leaflet http://esri.github.io/esri-leaflet/examples/non-mercator-projection.html');\n }\n }\n\n L.TileLayer.prototype.onAdd.call(this, map);\n }, this);\n } else {\n L.TileLayer.prototype.onAdd.call(this, map);\n }\n },\n\n metadata: function (callback, context) {\n this.service.metadata(callback, context);\n return this;\n },\n\n identify: function () {\n return this.service.identify();\n },\n\n find: function () {\n return this.service.find();\n },\n\n query: function () {\n return this.service.query();\n },\n\n authenticate: function (token) {\n var tokenQs = '?token=' + token;\n this.tileUrl = (this.options.token) ? this.tileUrl.replace(/\\?token=(.+)/g, tokenQs) : this.tileUrl + tokenQs;\n this.options.token = token;\n this.service.authenticate(token);\n return this;\n },\n\n _withinPercentage: function (a, b, percentage) {\n var diff = Math.abs((a / b) - 1);\n return diff < percentage;\n }\n});\n\nexport function tiledMapLayer (url, options) {\n return new TiledMapLayer(url, options);\n}\n\nexport default tiledMapLayer;\n","import L from 'leaflet';\nimport {cors} from '../Support.js';\n\nexport var RasterLayer = L.Layer.extend({\n\n options: {\n opacity: 1,\n position: 'front',\n f: 'image',\n useCors: cors,\n attribution: null,\n interactive: false,\n alt: ''\n },\n\n onAdd: function (map) {\n this._update = L.Util.throttle(this._update, this.options.updateInterval, this);\n\n if (map.options.crs && map.options.crs.code) {\n var sr = map.options.crs.code.split(':')[1];\n this.options.bboxSR = sr;\n this.options.imageSR = sr;\n }\n\n map.on('moveend', this._update, this);\n\n // if we had an image loaded and it matches the\n // current bounds show the image otherwise remove it\n if (this._currentImage && this._currentImage._bounds.equals(this._map.getBounds())) {\n map.addLayer(this._currentImage);\n } else if (this._currentImage) {\n this._map.removeLayer(this._currentImage);\n this._currentImage = null;\n }\n\n this._update();\n\n if (this._popup) {\n this._map.on('click', this._getPopupData, this);\n this._map.on('dblclick', this._resetPopupState, this);\n }\n },\n\n onRemove: function (map) {\n if (this._currentImage) {\n this._map.removeLayer(this._currentImage);\n }\n\n if (this._popup) {\n this._map.off('click', this._getPopupData, this);\n this._map.off('dblclick', this._resetPopupState, this);\n }\n\n this._map.off('moveend', this._update, this);\n },\n\n getEvents: function () {\n return {\n moveend: this._update\n };\n },\n\n bindPopup: function (fn, popupOptions) {\n this._shouldRenderPopup = false;\n this._lastClick = false;\n this._popup = L.popup(popupOptions);\n this._popupFunction = fn;\n if (this._map) {\n this._map.on('click', this._getPopupData, this);\n this._map.on('dblclick', this._resetPopupState, this);\n }\n return this;\n },\n\n unbindPopup: function () {\n if (this._map) {\n this._map.closePopup(this._popup);\n this._map.off('click', this._getPopupData, this);\n this._map.off('dblclick', this._resetPopupState, this);\n }\n this._popup = false;\n return this;\n },\n\n bringToFront: function () {\n this.options.position = 'front';\n if (this._currentImage) {\n this._currentImage.bringToFront();\n }\n return this;\n },\n\n bringToBack: function () {\n this.options.position = 'back';\n if (this._currentImage) {\n this._currentImage.bringToBack();\n }\n return this;\n },\n\n getAttribution: function () {\n return this.options.attribution;\n },\n\n getOpacity: function () {\n return this.options.opacity;\n },\n\n setOpacity: function (opacity) {\n this.options.opacity = opacity;\n this._currentImage.setOpacity(opacity);\n return this;\n },\n\n getTimeRange: function () {\n return [this.options.from, this.options.to];\n },\n\n setTimeRange: function (from, to) {\n this.options.from = from;\n this.options.to = to;\n this._update();\n return this;\n },\n\n metadata: function (callback, context) {\n this.service.metadata(callback, context);\n return this;\n },\n\n authenticate: function (token) {\n this.service.authenticate(token);\n return this;\n },\n\n _renderImage: function (url, bounds) {\n if (this._map) {\n // create a new image overlay and add it to the map\n // to start loading the image\n // opacity is 0 while the image is loading\n var image = new L.ImageOverlay(url, bounds, {\n opacity: 0,\n crossOrigin: this.options.useCors,\n alt: this.options.alt,\n pane: this.options.pane || this.getPane(),\n interactive: this.options.interactive\n }).addTo(this._map);\n\n // once the image loads\n image.once('load', function (e) {\n if (this._map) {\n var newImage = e.target;\n var oldImage = this._currentImage;\n\n // if the bounds of this image matches the bounds that\n // _renderImage was called with and we have a map with the same bounds\n // hide the old image if there is one and set the opacity\n // of the new image otherwise remove the new image\n if (newImage._bounds.equals(bounds) && newImage._bounds.equals(this._map.getBounds())) {\n this._currentImage = newImage;\n\n if (this.options.position === 'front') {\n this.bringToFront();\n } else {\n this.bringToBack();\n }\n\n if (this._map && this._currentImage._map) {\n this._currentImage.setOpacity(this.options.opacity);\n } else {\n this._currentImage._map.removeLayer(this._currentImage);\n }\n\n if (oldImage && this._map) {\n this._map.removeLayer(oldImage);\n }\n\n if (oldImage && oldImage._map) {\n oldImage._map.removeLayer(oldImage);\n }\n } else {\n this._map.removeLayer(newImage);\n }\n }\n\n this.fire('load', {\n bounds: bounds\n });\n }, this);\n\n this.fire('loading', {\n bounds: bounds\n });\n }\n },\n\n _update: function () {\n if (!this._map) {\n return;\n }\n\n var zoom = this._map.getZoom();\n var bounds = this._map.getBounds();\n\n if (this._animatingZoom) {\n return;\n }\n\n if (this._map._panTransition && this._map._panTransition._inProgress) {\n return;\n }\n\n if (zoom > this.options.maxZoom || zoom < this.options.minZoom) {\n return;\n }\n var params = this._buildExportParams();\n\n this._requestExport(params, bounds);\n },\n\n _renderPopup: function (latlng, error, results, response) {\n latlng = L.latLng(latlng);\n if (this._shouldRenderPopup && this._lastClick.equals(latlng)) {\n // add the popup to the map where the mouse was clicked at\n var content = this._popupFunction(error, results, response);\n if (content) {\n this._popup.setLatLng(latlng).setContent(content).openOn(this._map);\n }\n }\n },\n\n _resetPopupState: function (e) {\n this._shouldRenderPopup = false;\n this._lastClick = e.latlng;\n }\n});\n","import L from 'leaflet';\nimport { RasterLayer } from './RasterLayer.js';\nimport { cleanUrl } from '../Util.js';\nimport imageService from '../Services/ImageService.js';\n\nexport var ImageMapLayer = RasterLayer.extend({\n\n options: {\n updateInterval: 150,\n format: 'jpgpng',\n transparent: true,\n f: 'json'\n },\n\n query: function () {\n return this.service.query();\n },\n\n identify: function () {\n return this.service.identify();\n },\n\n initialize: function (options) {\n options.url = cleanUrl(options.url);\n this.service = imageService(options);\n this.service.addEventParent(this);\n\n L.Util.setOptions(this, options);\n },\n\n setPixelType: function (pixelType) {\n this.options.pixelType = pixelType;\n this._update();\n return this;\n },\n\n getPixelType: function () {\n return this.options.pixelType;\n },\n\n setBandIds: function (bandIds) {\n if (L.Util.isArray(bandIds)) {\n this.options.bandIds = bandIds.join(',');\n } else {\n this.options.bandIds = bandIds.toString();\n }\n this._update();\n return this;\n },\n\n getBandIds: function () {\n return this.options.bandIds;\n },\n\n setNoData: function (noData, noDataInterpretation) {\n if (L.Util.isArray(noData)) {\n this.options.noData = noData.join(',');\n } else {\n this.options.noData = noData.toString();\n }\n if (noDataInterpretation) {\n this.options.noDataInterpretation = noDataInterpretation;\n }\n this._update();\n return this;\n },\n\n getNoData: function () {\n return this.options.noData;\n },\n\n getNoDataInterpretation: function () {\n return this.options.noDataInterpretation;\n },\n\n setRenderingRule: function (renderingRule) {\n this.options.renderingRule = renderingRule;\n this._update();\n },\n\n getRenderingRule: function () {\n return this.options.renderingRule;\n },\n\n setMosaicRule: function (mosaicRule) {\n this.options.mosaicRule = mosaicRule;\n this._update();\n },\n\n getMosaicRule: function () {\n return this.options.mosaicRule;\n },\n\n _getPopupData: function (e) {\n var callback = L.Util.bind(function (error, results, response) {\n if (error) { return; } // we really can't do anything here but authenticate or requesterror will fire\n setTimeout(L.Util.bind(function () {\n this._renderPopup(e.latlng, error, results, response);\n }, this), 300);\n }, this);\n\n var identifyRequest = this.identify().at(e.latlng);\n\n // set mosaic rule for identify task if it is set for layer\n if (this.options.mosaicRule) {\n identifyRequest.setMosaicRule(this.options.mosaicRule);\n // @TODO: force return catalog items too?\n }\n\n // @TODO: set rendering rule? Not sure,\n // sometimes you want raw pixel values\n // if (this.options.renderingRule) {\n // identifyRequest.setRenderingRule(this.options.renderingRule);\n // }\n\n identifyRequest.run(callback);\n\n // set the flags to show the popup\n this._shouldRenderPopup = true;\n this._lastClick = e.latlng;\n },\n\n _buildExportParams: function () {\n var bounds = this._map.getBounds();\n var size = this._map.getSize();\n var ne = this._map.options.crs.project(bounds._northEast);\n var sw = this._map.options.crs.project(bounds._southWest);\n\n var params = {\n bbox: [sw.x, sw.y, ne.x, ne.y].join(','),\n size: size.x + ',' + size.y,\n format: this.options.format,\n transparent: this.options.transparent,\n bboxSR: this.options.bboxSR,\n imageSR: this.options.imageSR\n };\n\n if (this.options.from && this.options.to) {\n params.time = this.options.from.valueOf() + ',' + this.options.to.valueOf();\n }\n\n if (this.options.pixelType) {\n params.pixelType = this.options.pixelType;\n }\n\n if (this.options.interpolation) {\n params.interpolation = this.options.interpolation;\n }\n\n if (this.options.compressionQuality) {\n params.compressionQuality = this.options.compressionQuality;\n }\n\n if (this.options.bandIds) {\n params.bandIds = this.options.bandIds;\n }\n\n if (this.options.noData) {\n params.noData = this.options.noData;\n }\n\n if (this.options.noDataInterpretation) {\n params.noDataInterpretation = this.options.noDataInterpretation;\n }\n\n if (this.service.options.token) {\n params.token = this.service.options.token;\n }\n\n if (this.options.renderingRule) {\n params.renderingRule = JSON.stringify(this.options.renderingRule);\n }\n\n if (this.options.mosaicRule) {\n params.mosaicRule = JSON.stringify(this.options.mosaicRule);\n }\n\n return params;\n },\n\n _requestExport: function (params, bounds) {\n if (this.options.f === 'json') {\n this.service.get('exportImage', params, function (error, response) {\n if (error) { return; } // we really can't do anything here but authenticate or requesterror will fire\n this._renderImage(response.href, bounds);\n }, this);\n } else {\n params.f = 'image';\n this._renderImage(this.options.url + 'exportImage' + L.Util.getParamString(params), bounds);\n }\n }\n});\n\nexport function imageMapLayer (url, options) {\n return new ImageMapLayer(url, options);\n}\n\nexport default imageMapLayer;\n","import L from 'leaflet';\nimport { RasterLayer } from './RasterLayer.js';\nimport { cleanUrl } from '../Util.js';\nimport mapService from '../Services/MapService.js';\n\nexport var DynamicMapLayer = RasterLayer.extend({\n\n options: {\n updateInterval: 150,\n layers: false,\n layerDefs: false,\n timeOptions: false,\n format: 'png24',\n transparent: true,\n f: 'json'\n },\n\n initialize: function (options) {\n options.url = cleanUrl(options.url);\n this.service = mapService(options);\n this.service.addEventParent(this);\n\n if ((options.proxy || options.token) && options.f !== 'json') {\n options.f = 'json';\n }\n L.Util.setOptions(this, options);\n },\n\n getDynamicLayers: function () {\n return this.options.dynamicLayers;\n },\n\n setDynamicLayers: function (dynamicLayers) {\n this.options.dynamicLayers = dynamicLayers;\n this._update();\n return this;\n },\n\n getLayers: function () {\n return this.options.layers;\n },\n\n setLayers: function (layers) {\n this.options.layers = layers;\n this._update();\n return this;\n },\n\n getLayerDefs: function () {\n return this.options.layerDefs;\n },\n\n setLayerDefs: function (layerDefs) {\n this.options.layerDefs = layerDefs;\n this._update();\n return this;\n },\n\n getTimeOptions: function () {\n return this.options.timeOptions;\n },\n\n setTimeOptions: function (timeOptions) {\n this.options.timeOptions = timeOptions;\n this._update();\n return this;\n },\n\n query: function () {\n return this.service.query();\n },\n\n identify: function () {\n return this.service.identify();\n },\n\n find: function () {\n return this.service.find();\n },\n\n _getPopupData: function (e) {\n var callback = L.Util.bind(function (error, featureCollection, response) {\n if (error) { return; } // we really can't do anything here but authenticate or requesterror will fire\n setTimeout(L.Util.bind(function () {\n this._renderPopup(e.latlng, error, featureCollection, response);\n }, this), 300);\n }, this);\n\n var identifyRequest = this.identify().on(this._map).at(e.latlng);\n\n if (this.options.layers) {\n identifyRequest.layers('visible:' + this.options.layers.join(','));\n } else {\n identifyRequest.layers('visible');\n }\n\n identifyRequest.run(callback);\n\n // set the flags to show the popup\n this._shouldRenderPopup = true;\n this._lastClick = e.latlng;\n },\n\n _buildExportParams: function () {\n var bounds = this._map.getBounds();\n var size = this._map.getSize();\n var ne = this._map.options.crs.project(bounds._northEast);\n var sw = this._map.options.crs.project(bounds._southWest);\n\n // ensure that we don't ask ArcGIS Server for a taller image than we have actual map displaying\n var top = this._map.latLngToLayerPoint(bounds._northEast);\n var bottom = this._map.latLngToLayerPoint(bounds._southWest);\n\n if (top.y > 0 || bottom.y < size.y) {\n size.y = bottom.y - top.y;\n }\n\n var params = {\n bbox: [sw.x, sw.y, ne.x, ne.y].join(','),\n size: size.x + ',' + size.y,\n dpi: 96,\n format: this.options.format,\n transparent: this.options.transparent,\n bboxSR: this.options.bboxSR,\n imageSR: this.options.imageSR\n };\n\n if (this.options.dynamicLayers) {\n params.dynamicLayers = this.options.dynamicLayers;\n }\n\n if (this.options.layers) {\n params.layers = 'show:' + this.options.layers.join(',');\n }\n\n if (this.options.layerDefs) {\n params.layerDefs = JSON.stringify(this.options.layerDefs);\n }\n\n if (this.options.timeOptions) {\n params.timeOptions = JSON.stringify(this.options.timeOptions);\n }\n\n if (this.options.from && this.options.to) {\n params.time = this.options.from.valueOf() + ',' + this.options.to.valueOf();\n }\n\n if (this.service.options.token) {\n params.token = this.service.options.token;\n }\n\n return params;\n },\n\n _requestExport: function (params, bounds) {\n if (this.options.f === 'json') {\n this.service.get('export', params, function (error, response) {\n if (error) { return; } // we really can't do anything here but authenticate or requesterror will fire\n this._renderImage(response.href, bounds);\n }, this);\n } else {\n params.f = 'image';\n this._renderImage(this.options.url + 'export' + L.Util.getParamString(params), bounds);\n }\n }\n});\n\nexport function dynamicMapLayer (url, options) {\n return new DynamicMapLayer(url, options);\n}\n\nexport default dynamicMapLayer;\n","import L from 'leaflet';\n\nexport var FeatureGrid = L.Layer.extend({\n\n options: {\n cellSize: 512,\n updateInterval: 150\n },\n\n initialize: function (options) {\n options = L.setOptions(this, options);\n },\n\n onAdd: function (map) {\n this._map = map;\n this._update = L.Util.throttle(this._update, this.options.updateInterval, this);\n this._reset();\n this._update();\n },\n\n onRemove: function () {\n this._map.removeEventListener(this.getEvents(), this);\n this._removeCells();\n },\n\n getEvents: function () {\n var events = {\n moveend: this._update,\n zoomend: this._reset\n };\n\n return events;\n },\n\n addTo: function (map) {\n map.addLayer(this);\n return this;\n },\n\n removeFrom: function (map) {\n map.removeLayer(this);\n return this;\n },\n\n _reset: function () {\n this._removeCells();\n\n this._cells = {};\n this._activeCells = {};\n this._cellsToLoad = 0;\n this._cellsTotal = 0;\n this._cellNumBounds = this._getCellNumBounds();\n\n this._resetWrap();\n },\n\n _resetWrap: function () {\n var map = this._map;\n var crs = map.options.crs;\n\n if (crs.infinite) { return; }\n\n var cellSize = this._getCellSize();\n\n if (crs.wrapLng) {\n this._wrapLng = [\n Math.floor(map.project([0, crs.wrapLng[0]]).x / cellSize),\n Math.ceil(map.project([0, crs.wrapLng[1]]).x / cellSize)\n ];\n }\n\n if (crs.wrapLat) {\n this._wrapLat = [\n Math.floor(map.project([crs.wrapLat[0], 0]).y / cellSize),\n Math.ceil(map.project([crs.wrapLat[1], 0]).y / cellSize)\n ];\n }\n },\n\n _getCellSize: function () {\n return this.options.cellSize;\n },\n\n _update: function () {\n if (!this._map) { return; }\n\n var bounds = this._map.getPixelBounds();\n var zoom = this._map.getZoom();\n var cellSize = this._getCellSize();\n\n if (zoom > this.options.maxZoom ||\n zoom < this.options.minZoom) { return; }\n\n // cell coordinates range for the current view\n var cellBounds = L.bounds(\n bounds.min.divideBy(cellSize).floor(),\n bounds.max.divideBy(cellSize).floor());\n\n this._removeOtherCells(cellBounds);\n this._addCells(cellBounds);\n },\n\n _addCells: function (bounds) {\n var queue = [];\n var center = bounds.getCenter();\n var zoom = this._map.getZoom();\n\n var j, i, coords;\n // create a queue of coordinates to load cells from\n for (j = bounds.min.y; j <= bounds.max.y; j++) {\n for (i = bounds.min.x; i <= bounds.max.x; i++) {\n coords = new L.Point(i, j);\n coords.z = zoom;\n\n if (this._isValidCell(coords)) {\n queue.push(coords);\n }\n }\n }\n\n var cellsToLoad = queue.length;\n\n if (cellsToLoad === 0) { return; }\n\n this._cellsToLoad += cellsToLoad;\n this._cellsTotal += cellsToLoad;\n\n // sort cell queue to load cells in order of their distance to center\n queue.sort(function (a, b) {\n return a.distanceTo(center) - b.distanceTo(center);\n });\n\n for (i = 0; i < cellsToLoad; i++) {\n this._addCell(queue[i]);\n }\n },\n\n _isValidCell: function (coords) {\n var crs = this._map.options.crs;\n\n if (!crs.infinite) {\n // don't load cell if it's out of bounds and not wrapped\n var bounds = this._cellNumBounds;\n if (\n (!crs.wrapLng && (coords.x < bounds.min.x || coords.x > bounds.max.x)) ||\n (!crs.wrapLat && (coords.y < bounds.min.y || coords.y > bounds.max.y))\n ) {\n return false;\n }\n }\n\n if (!this.options.bounds) {\n return true;\n }\n\n // don't load cell if it doesn't intersect the bounds in options\n var cellBounds = this._cellCoordsToBounds(coords);\n return L.latLngBounds(this.options.bounds).intersects(cellBounds);\n },\n\n // converts cell coordinates to its geographical bounds\n _cellCoordsToBounds: function (coords) {\n var map = this._map;\n var cellSize = this.options.cellSize;\n var nwPoint = coords.multiplyBy(cellSize);\n var sePoint = nwPoint.add([cellSize, cellSize]);\n var nw = map.wrapLatLng(map.unproject(nwPoint, coords.z));\n var se = map.wrapLatLng(map.unproject(sePoint, coords.z));\n\n return new L.LatLngBounds(nw, se);\n },\n\n // converts cell coordinates to key for the cell cache\n _cellCoordsToKey: function (coords) {\n return coords.x + ':' + coords.y;\n },\n\n // converts cell cache key to coordiantes\n _keyToCellCoords: function (key) {\n var kArr = key.split(':');\n var x = parseInt(kArr[0], 10);\n var y = parseInt(kArr[1], 10);\n\n return new L.Point(x, y);\n },\n\n // remove any present cells that are off the specified bounds\n _removeOtherCells: function (bounds) {\n for (var key in this._cells) {\n if (!bounds.contains(this._keyToCellCoords(key))) {\n this._removeCell(key);\n }\n }\n },\n\n _removeCell: function (key) {\n var cell = this._activeCells[key];\n\n if (cell) {\n delete this._activeCells[key];\n\n if (this.cellLeave) {\n this.cellLeave(cell.bounds, cell.coords);\n }\n\n this.fire('cellleave', {\n bounds: cell.bounds,\n coords: cell.coords\n });\n }\n },\n\n _removeCells: function () {\n for (var key in this._cells) {\n var bounds = this._cells[key].bounds;\n var coords = this._cells[key].coords;\n\n if (this.cellLeave) {\n this.cellLeave(bounds, coords);\n }\n\n this.fire('cellleave', {\n bounds: bounds,\n coords: coords\n });\n }\n },\n\n _addCell: function (coords) {\n // wrap cell coords if necessary (depending on CRS)\n this._wrapCoords(coords);\n\n // generate the cell key\n var key = this._cellCoordsToKey(coords);\n\n // get the cell from the cache\n var cell = this._cells[key];\n // if this cell should be shown as isnt active yet (enter)\n\n if (cell && !this._activeCells[key]) {\n if (this.cellEnter) {\n this.cellEnter(cell.bounds, coords);\n }\n\n this.fire('cellenter', {\n bounds: cell.bounds,\n coords: coords\n });\n\n this._activeCells[key] = cell;\n }\n\n // if we dont have this cell in the cache yet (create)\n if (!cell) {\n cell = {\n coords: coords,\n bounds: this._cellCoordsToBounds(coords)\n };\n\n this._cells[key] = cell;\n this._activeCells[key] = cell;\n\n if (this.createCell) {\n this.createCell(cell.bounds, coords);\n }\n\n this.fire('cellcreate', {\n bounds: cell.bounds,\n coords: coords\n });\n }\n },\n\n _wrapCoords: function (coords) {\n coords.x = this._wrapLng ? L.Util.wrapNum(coords.x, this._wrapLng) : coords.x;\n coords.y = this._wrapLat ? L.Util.wrapNum(coords.y, this._wrapLat) : coords.y;\n },\n\n // get the global cell coordinates range for the current zoom\n _getCellNumBounds: function () {\n var bounds = this._map.getPixelWorldBounds();\n var size = this._getCellSize();\n\n return bounds ? L.bounds(\n bounds.min.divideBy(size).floor(),\n bounds.max.divideBy(size).ceil().subtract([1, 1])) : null;\n }\n});\n","import L from 'leaflet';\nimport { FeatureGrid } from './FeatureGrid.js';\nimport featureLayerService from '../../Services/FeatureLayerService.js';\nimport { cleanUrl, warn } from '../../Util.js';\n\nexport var FeatureManager = FeatureGrid.extend({\n /**\n * Options\n */\n\n options: {\n attribution: null,\n where: '1=1',\n fields: ['*'],\n from: false,\n to: false,\n timeField: false,\n timeFilterMode: 'server',\n simplifyFactor: 0,\n precision: 6\n },\n\n /**\n * Constructor\n */\n\n initialize: function (options) {\n FeatureGrid.prototype.initialize.call(this, options);\n\n options.url = cleanUrl(options.url);\n options = L.setOptions(this, options);\n\n this.service = featureLayerService(options);\n this.service.addEventParent(this);\n\n // use case insensitive regex to look for common fieldnames used for indexing\n if (this.options.fields[0] !== '*') {\n var oidCheck = false;\n for (var i = 0; i < this.options.fields.length; i++) {\n if (this.options.fields[i].match(/^(OBJECTID|FID|OID|ID)$/i)) {\n oidCheck = true;\n }\n }\n if (oidCheck === false) {\n warn('no known esriFieldTypeOID field detected in fields Array. Please add an attribute field containing unique IDs to ensure the layer can be drawn correctly.');\n }\n }\n\n if (this.options.timeField.start && this.options.timeField.end) {\n this._startTimeIndex = new BinarySearchIndex();\n this._endTimeIndex = new BinarySearchIndex();\n } else if (this.options.timeField) {\n this._timeIndex = new BinarySearchIndex();\n }\n\n this._cache = {};\n this._currentSnapshot = []; // cache of what layers should be active\n this._activeRequests = 0;\n },\n\n /**\n * Layer Interface\n */\n\n onAdd: function (map) {\n return FeatureGrid.prototype.onAdd.call(this, map);\n },\n\n onRemove: function (map) {\n return FeatureGrid.prototype.onRemove.call(this, map);\n },\n\n getAttribution: function () {\n return this.options.attribution;\n },\n\n /**\n * Feature Managment\n */\n\n createCell: function (bounds, coords) {\n this._requestFeatures(bounds, coords);\n },\n\n _requestFeatures: function (bounds, coords, callback) {\n this._activeRequests++;\n\n // our first active request fires loading\n if (this._activeRequests === 1) {\n this.fire('loading', {\n bounds: bounds\n }, true);\n }\n\n return this._buildQuery(bounds).run(function (error, featureCollection, response) {\n if (response && response.exceededTransferLimit) {\n this.fire('drawlimitexceeded');\n }\n\n // no error, features\n if (!error && featureCollection && featureCollection.features.length) {\n // schedule adding features until the next animation frame\n L.Util.requestAnimFrame(L.Util.bind(function () {\n this._addFeatures(featureCollection.features, coords);\n this._postProcessFeatures(bounds);\n }, this));\n }\n\n // no error, no features\n if (!error && featureCollection && !featureCollection.features.length) {\n this._postProcessFeatures(bounds);\n }\n\n if (callback) {\n callback.call(this, error, featureCollection);\n }\n }, this);\n },\n\n _postProcessFeatures: function (bounds) {\n // deincriment the request counter now that we have processed features\n this._activeRequests--;\n\n // if there are no more active requests fire a load event for this view\n if (this._activeRequests <= 0) {\n this.fire('load', {\n bounds: bounds\n });\n }\n },\n\n _cacheKey: function (coords) {\n return coords.z + ':' + coords.x + ':' + coords.y;\n },\n\n _addFeatures: function (features, coords) {\n var key = this._cacheKey(coords);\n this._cache[key] = this._cache[key] || [];\n\n for (var i = features.length - 1; i >= 0; i--) {\n var id = features[i].id;\n this._currentSnapshot.push(id);\n this._cache[key].push(id);\n }\n\n if (this.options.timeField) {\n this._buildTimeIndexes(features);\n }\n\n var zoom = this._map.getZoom();\n\n if (zoom > this.options.maxZoom ||\n zoom < this.options.minZoom) { return; }\n\n this.createLayers(features);\n },\n\n _buildQuery: function (bounds) {\n var query = this.service.query()\n .intersects(bounds)\n .where(this.options.where)\n .fields(this.options.fields)\n .precision(this.options.precision);\n\n if (this.options.simplifyFactor) {\n query.simplify(this._map, this.options.simplifyFactor);\n }\n\n if (this.options.timeFilterMode === 'server' && this.options.from && this.options.to) {\n query.between(this.options.from, this.options.to);\n }\n\n return query;\n },\n\n /**\n * Where Methods\n */\n\n setWhere: function (where, callback, context) {\n this.options.where = (where && where.length) ? where : '1=1';\n\n var oldSnapshot = [];\n var newSnapshot = [];\n var pendingRequests = 0;\n var requestError = null;\n var requestCallback = L.Util.bind(function (error, featureCollection) {\n if (error) {\n requestError = error;\n }\n\n if (featureCollection) {\n for (var i = featureCollection.features.length - 1; i >= 0; i--) {\n newSnapshot.push(featureCollection.features[i].id);\n }\n }\n\n pendingRequests--;\n\n if (pendingRequests <= 0) {\n this._currentSnapshot = newSnapshot;\n // schedule adding features until the next animation frame\n L.Util.requestAnimFrame(L.Util.bind(function () {\n this.removeLayers(oldSnapshot);\n this.addLayers(newSnapshot);\n if (callback) {\n callback.call(context, requestError);\n }\n }, this));\n }\n }, this);\n\n for (var i = this._currentSnapshot.length - 1; i >= 0; i--) {\n oldSnapshot.push(this._currentSnapshot[i]);\n }\n\n for (var key in this._activeCells) {\n pendingRequests++;\n var coords = this._keyToCellCoords(key);\n var bounds = this._cellCoordsToBounds(coords);\n this._requestFeatures(bounds, key, requestCallback);\n }\n\n return this;\n },\n\n getWhere: function () {\n return this.options.where;\n },\n\n /**\n * Time Range Methods\n */\n\n getTimeRange: function () {\n return [this.options.from, this.options.to];\n },\n\n setTimeRange: function (from, to, callback, context) {\n var oldFrom = this.options.from;\n var oldTo = this.options.to;\n var pendingRequests = 0;\n var requestError = null;\n var requestCallback = L.Util.bind(function (error) {\n if (error) {\n requestError = error;\n }\n this._filterExistingFeatures(oldFrom, oldTo, from, to);\n\n pendingRequests--;\n\n if (callback && pendingRequests <= 0) {\n callback.call(context, requestError);\n }\n }, this);\n\n this.options.from = from;\n this.options.to = to;\n\n this._filterExistingFeatures(oldFrom, oldTo, from, to);\n\n if (this.options.timeFilterMode === 'server') {\n for (var key in this._activeCells) {\n pendingRequests++;\n var coords = this._keyToCellCoords(key);\n var bounds = this._cellCoordsToBounds(coords);\n this._requestFeatures(bounds, key, requestCallback);\n }\n }\n\n return this;\n },\n\n refresh: function () {\n for (var key in this._activeCells) {\n var coords = this._keyToCellCoords(key);\n var bounds = this._cellCoordsToBounds(coords);\n this._requestFeatures(bounds, key);\n }\n\n if (this.redraw) {\n this.once('load', function () {\n this.eachFeature(function (layer) {\n this._redraw(layer.feature.id);\n }, this);\n }, this);\n }\n },\n\n _filterExistingFeatures: function (oldFrom, oldTo, newFrom, newTo) {\n var layersToRemove = (oldFrom && oldTo) ? this._getFeaturesInTimeRange(oldFrom, oldTo) : this._currentSnapshot;\n var layersToAdd = this._getFeaturesInTimeRange(newFrom, newTo);\n\n if (layersToAdd.indexOf) {\n for (var i = 0; i < layersToAdd.length; i++) {\n var shouldRemoveLayer = layersToRemove.indexOf(layersToAdd[i]);\n if (shouldRemoveLayer >= 0) {\n layersToRemove.splice(shouldRemoveLayer, 1);\n }\n }\n }\n\n // schedule adding features until the next animation frame\n L.Util.requestAnimFrame(L.Util.bind(function () {\n this.removeLayers(layersToRemove);\n this.addLayers(layersToAdd);\n }, this));\n },\n\n _getFeaturesInTimeRange: function (start, end) {\n var ids = [];\n var search;\n\n if (this.options.timeField.start && this.options.timeField.end) {\n var startTimes = this._startTimeIndex.between(start, end);\n var endTimes = this._endTimeIndex.between(start, end);\n search = startTimes.concat(endTimes);\n } else {\n search = this._timeIndex.between(start, end);\n }\n\n for (var i = search.length - 1; i >= 0; i--) {\n ids.push(search[i].id);\n }\n\n return ids;\n },\n\n _buildTimeIndexes: function (geojson) {\n var i;\n var feature;\n if (this.options.timeField.start && this.options.timeField.end) {\n var startTimeEntries = [];\n var endTimeEntries = [];\n for (i = geojson.length - 1; i >= 0; i--) {\n feature = geojson[i];\n startTimeEntries.push({\n id: feature.id,\n value: new Date(feature.properties[this.options.timeField.start])\n });\n endTimeEntries.push({\n id: feature.id,\n value: new Date(feature.properties[this.options.timeField.end])\n });\n }\n this._startTimeIndex.bulkAdd(startTimeEntries);\n this._endTimeIndex.bulkAdd(endTimeEntries);\n } else {\n var timeEntries = [];\n for (i = geojson.length - 1; i >= 0; i--) {\n feature = geojson[i];\n timeEntries.push({\n id: feature.id,\n value: new Date(feature.properties[this.options.timeField])\n });\n }\n\n this._timeIndex.bulkAdd(timeEntries);\n }\n },\n\n _featureWithinTimeRange: function (feature) {\n if (!this.options.from || !this.options.to) {\n return true;\n }\n\n var from = +this.options.from.valueOf();\n var to = +this.options.to.valueOf();\n\n if (typeof this.options.timeField === 'string') {\n var date = +feature.properties[this.options.timeField];\n return (date >= from) && (date <= to);\n }\n\n if (this.options.timeField.start && this.options.timeField.end) {\n var startDate = +feature.properties[this.options.timeField.start];\n var endDate = +feature.properties[this.options.timeField.end];\n return ((startDate >= from) && (startDate <= to)) || ((endDate >= from) && (endDate <= to));\n }\n },\n\n /**\n * Service Methods\n */\n\n authenticate: function (token) {\n this.service.authenticate(token);\n return this;\n },\n\n metadata: function (callback, context) {\n this.service.metadata(callback, context);\n return this;\n },\n\n query: function () {\n return this.service.query();\n },\n\n _getMetadata: function (callback) {\n if (this._metadata) {\n var error;\n callback(error, this._metadata);\n } else {\n this.metadata(L.Util.bind(function (error, response) {\n this._metadata = response;\n callback(error, this._metadata);\n }, this));\n }\n },\n\n addFeature: function (feature, callback, context) {\n this._getMetadata(L.Util.bind(function (error, metadata) {\n if (error) {\n if (callback) { callback.call(this, error, null); }\n return;\n }\n\n this.service.addFeature(feature, L.Util.bind(function (error, response) {\n if (!error) {\n // assign ID from result to appropriate objectid field from service metadata\n feature.properties[metadata.objectIdField] = response.objectId;\n\n // we also need to update the geojson id for createLayers() to function\n feature.id = response.objectId;\n this.createLayers([feature]);\n }\n\n if (callback) {\n callback.call(context, error, response);\n }\n }, this));\n }, this));\n },\n\n updateFeature: function (feature, callback, context) {\n this.service.updateFeature(feature, function (error, response) {\n if (!error) {\n this.removeLayers([feature.id], true);\n this.createLayers([feature]);\n }\n\n if (callback) {\n callback.call(context, error, response);\n }\n }, this);\n },\n\n deleteFeature: function (id, callback, context) {\n this.service.deleteFeature(id, function (error, response) {\n if (!error && response.objectId) {\n this.removeLayers([response.objectId], true);\n }\n if (callback) {\n callback.call(context, error, response);\n }\n }, this);\n },\n\n deleteFeatures: function (ids, callback, context) {\n return this.service.deleteFeatures(ids, function (error, response) {\n if (!error && response.length > 0) {\n for (var i = 0; i < response.length; i++) {\n this.removeLayers([response[i].objectId], true);\n }\n }\n if (callback) {\n callback.call(context, error, response);\n }\n }, this);\n }\n});\n\n/**\n * Temporal Binary Search Index\n */\n\nfunction BinarySearchIndex (values) {\n this.values = values || [];\n}\n\nBinarySearchIndex.prototype._query = function (query) {\n var minIndex = 0;\n var maxIndex = this.values.length - 1;\n var currentIndex;\n var currentElement;\n\n while (minIndex <= maxIndex) {\n currentIndex = (minIndex + maxIndex) / 2 | 0;\n currentElement = this.values[Math.round(currentIndex)];\n if (+currentElement.value < +query) {\n minIndex = currentIndex + 1;\n } else if (+currentElement.value > +query) {\n maxIndex = currentIndex - 1;\n } else {\n return currentIndex;\n }\n }\n\n return ~maxIndex;\n};\n\nBinarySearchIndex.prototype.sort = function () {\n this.values.sort(function (a, b) {\n return +b.value - +a.value;\n }).reverse();\n this.dirty = false;\n};\n\nBinarySearchIndex.prototype.between = function (start, end) {\n if (this.dirty) {\n this.sort();\n }\n\n var startIndex = this._query(start);\n var endIndex = this._query(end);\n\n if (startIndex === 0 && endIndex === 0) {\n return [];\n }\n\n startIndex = Math.abs(startIndex);\n endIndex = (endIndex < 0) ? Math.abs(endIndex) : endIndex + 1;\n\n return this.values.slice(startIndex, endIndex);\n};\n\nBinarySearchIndex.prototype.bulkAdd = function (items) {\n this.dirty = true;\n this.values = this.values.concat(items);\n};\n","import L from 'leaflet';\nimport { FeatureManager } from './FeatureManager.js';\n\nexport var FeatureLayer = FeatureManager.extend({\n\n options: {\n cacheLayers: true\n },\n\n /**\n * Constructor\n */\n initialize: function (options) {\n FeatureManager.prototype.initialize.call(this, options);\n this._originalStyle = this.options.style;\n this._layers = {};\n },\n\n /**\n * Layer Interface\n */\n\n onAdd: function (map) {\n map.on('zoomstart zoomend', function (e) {\n this._zooming = (e.type === 'zoomstart');\n }, this);\n return FeatureManager.prototype.onAdd.call(this, map);\n },\n\n onRemove: function (map) {\n for (var i in this._layers) {\n map.removeLayer(this._layers[i]);\n }\n\n return FeatureManager.prototype.onRemove.call(this, map);\n },\n\n createNewLayer: function (geojson) {\n var layer = L.GeoJSON.geometryToLayer(geojson, this.options);\n layer.defaultOptions = layer.options;\n return layer;\n },\n\n _updateLayer: function (layer, geojson) {\n // convert the geojson coordinates into a Leaflet LatLng array/nested arrays\n // pass it to setLatLngs to update layer geometries\n var latlngs = [];\n var coordsToLatLng = this.options.coordsToLatLng || L.GeoJSON.coordsToLatLng;\n\n // copy new attributes, if present\n if (geojson.properties) {\n layer.feature.properties = geojson.properties;\n }\n\n switch (geojson.geometry.type) {\n case 'Point':\n latlngs = L.GeoJSON.coordsToLatLng(geojson.geometry.coordinates);\n layer.setLatLng(latlngs);\n break;\n case 'LineString':\n latlngs = L.GeoJSON.coordsToLatLngs(geojson.geometry.coordinates, 0, coordsToLatLng);\n layer.setLatLngs(latlngs);\n break;\n case 'MultiLineString':\n latlngs = L.GeoJSON.coordsToLatLngs(geojson.geometry.coordinates, 1, coordsToLatLng);\n layer.setLatLngs(latlngs);\n break;\n case 'Polygon':\n latlngs = L.GeoJSON.coordsToLatLngs(geojson.geometry.coordinates, 1, coordsToLatLng);\n layer.setLatLngs(latlngs);\n break;\n case 'MultiPolygon':\n latlngs = L.GeoJSON.coordsToLatLngs(geojson.geometry.coordinates, 2, coordsToLatLng);\n layer.setLatLngs(latlngs);\n break;\n }\n },\n\n /**\n * Feature Management Methods\n */\n\n createLayers: function (features) {\n for (var i = features.length - 1; i >= 0; i--) {\n var geojson = features[i];\n\n var layer = this._layers[geojson.id];\n var newLayer;\n\n if (layer && !this._map.hasLayer(layer)) {\n this._map.addLayer(layer);\n }\n\n // update geomerty if neccessary\n if (layer && (layer.setLatLngs || layer.setLatLng)) {\n this._updateLayer(layer, geojson);\n }\n\n if (!layer) {\n newLayer = this.createNewLayer(geojson);\n newLayer.feature = geojson;\n\n // bubble events from individual layers to the feature layer\n newLayer.addEventParent(this);\n\n if (this.options.onEachFeature) {\n this.options.onEachFeature(newLayer.feature, newLayer);\n }\n\n // cache the layer\n this._layers[newLayer.feature.id] = newLayer;\n\n // style the layer\n this.setFeatureStyle(newLayer.feature.id, this.options.style);\n\n this.fire('createfeature', {\n feature: newLayer.feature\n }, true);\n\n // add the layer if it is within the time bounds or our layer is not time enabled\n if (!this.options.timeField || (this.options.timeField && this._featureWithinTimeRange(geojson))) {\n this._map.addLayer(newLayer);\n }\n }\n }\n },\n\n addLayers: function (ids) {\n for (var i = ids.length - 1; i >= 0; i--) {\n var layer = this._layers[ids[i]];\n if (layer) {\n this.fire('addfeature', {\n feature: layer.feature\n }, true);\n this._map.addLayer(layer);\n }\n }\n },\n\n removeLayers: function (ids, permanent) {\n for (var i = ids.length - 1; i >= 0; i--) {\n var id = ids[i];\n var layer = this._layers[id];\n if (layer) {\n this.fire('removefeature', {\n feature: layer.feature,\n permanent: permanent\n }, true);\n this._map.removeLayer(layer);\n }\n if (layer && permanent) {\n delete this._layers[id];\n }\n }\n },\n\n cellEnter: function (bounds, coords) {\n if (!this._zooming) {\n L.Util.requestAnimFrame(L.Util.bind(function () {\n var cacheKey = this._cacheKey(coords);\n var cellKey = this._cellCoordsToKey(coords);\n var layers = this._cache[cacheKey];\n if (this._activeCells[cellKey] && layers) {\n this.addLayers(layers);\n }\n }, this));\n }\n },\n\n cellLeave: function (bounds, coords) {\n if (!this._zooming) {\n L.Util.requestAnimFrame(L.Util.bind(function () {\n var cacheKey = this._cacheKey(coords);\n var cellKey = this._cellCoordsToKey(coords);\n var layers = this._cache[cacheKey];\n var mapBounds = this._map.getBounds();\n if (!this._activeCells[cellKey] && layers) {\n var removable = true;\n\n for (var i = 0; i < layers.length; i++) {\n var layer = this._layers[layers[i]];\n if (layer && layer.getBounds && mapBounds.intersects(layer.getBounds())) {\n removable = false;\n }\n }\n\n if (removable) {\n this.removeLayers(layers, !this.options.cacheLayers);\n }\n\n if (!this.options.cacheLayers && removable) {\n delete this._cache[cacheKey];\n delete this._cells[cellKey];\n delete this._activeCells[cellKey];\n }\n }\n }, this));\n }\n },\n\n /**\n * Styling Methods\n */\n\n resetStyle: function () {\n this.options.style = this._originalStyle;\n this.eachFeature(function (layer) {\n this.resetFeatureStyle(layer.feature.id);\n }, this);\n return this;\n },\n\n setStyle: function (style) {\n this.options.style = style;\n this.eachFeature(function (layer) {\n this.setFeatureStyle(layer.feature.id, style);\n }, this);\n return this;\n },\n\n resetFeatureStyle: function (id) {\n var layer = this._layers[id];\n var style = this._originalStyle || L.Path.prototype.options;\n if (layer) {\n L.Util.extend(layer.options, layer.defaultOptions);\n this.setFeatureStyle(id, style);\n }\n return this;\n },\n\n setFeatureStyle: function (id, style) {\n var layer = this._layers[id];\n if (typeof style === 'function') {\n style = style(layer.feature);\n }\n if (layer.setStyle) {\n layer.setStyle(style);\n }\n return this;\n },\n\n /**\n * Utility Methods\n */\n\n eachFeature: function (fn, context) {\n for (var i in this._layers) {\n fn.call(context, this._layers[i]);\n }\n return this;\n },\n\n getFeature: function (id) {\n return this._layers[id];\n },\n\n bringToBack: function () {\n this.eachFeature(function (layer) {\n if (layer.bringToBack) {\n layer.bringToBack();\n }\n });\n },\n\n bringToFront: function () {\n this.eachFeature(function (layer) {\n if (layer.bringToFront) {\n layer.bringToFront();\n }\n });\n },\n\n redraw: function (id) {\n if (id) {\n this._redraw(id);\n }\n return this;\n },\n\n _redraw: function (id) {\n var layer = this._layers[id];\n var geojson = layer.feature;\n\n // if this looks like a marker\n if (layer && layer.setIcon && this.options.pointToLayer) {\n // update custom symbology, if necessary\n if (this.options.pointToLayer) {\n var getIcon = this.options.pointToLayer(geojson, L.latLng(geojson.geometry.coordinates[1], geojson.geometry.coordinates[0]));\n var updatedIcon = getIcon.options.icon;\n layer.setIcon(updatedIcon);\n }\n }\n\n // looks like a vector marker (circleMarker)\n if (layer && layer.setStyle && this.options.pointToLayer) {\n var getStyle = this.options.pointToLayer(geojson, L.latLng(geojson.geometry.coordinates[1], geojson.geometry.coordinates[0]));\n var updatedStyle = getStyle.options;\n this.setFeatureStyle(geojson.id, updatedStyle);\n }\n\n // looks like a path (polygon/polyline)\n if (layer && layer.setStyle && this.options.style) {\n this.resetStyle(geojson.id);\n }\n }\n});\n\nexport function featureLayer (options) {\n return new FeatureLayer(options);\n}\n\nexport default featureLayer;\n","// import leaflet to ensure a gloabl\nimport L from 'leaflet';\n\n// import base\nimport { Support } from './Support.js';\nimport { Util } from './Util.js';\nimport { get, post, request } from './Request.js';\n\n// import tasks\nimport { Task, task } from './Tasks/Task.js';\nimport { Query, query } from './Tasks/Query.js';\nimport { Find, find } from './Tasks/Find.js';\nimport { Identify, identify } from './Tasks/Identify.js';\nimport { IdentifyFeatures, identifyFeatures } from './Tasks/IdentifyFeatures.js';\nimport { IdentifyImage, identifyImage } from './Tasks/IdentifyImage.js';\n\n// export services\nimport { Service, service } from './Services/Service.js';\nimport { MapService, mapService } from './Services/MapService.js';\nimport { ImageService, imageService } from './Services/ImageService.js';\nimport { FeatureLayerService, featureLayerService } from './Services/FeatureLayerService.js';\n\n// export layers\nimport { BasemapLayer, basemapLayer } from './Layers/BasemapLayer.js';\nimport { TiledMapLayer, tiledMapLayer } from './Layers/TiledMapLayer.js';\nimport { RasterLayer } from './Layers/RasterLayer.js';\nimport { ImageMapLayer, imageMapLayer } from './Layers/ImageMapLayer.js';\nimport { DynamicMapLayer, dynamicMapLayer } from './Layers/DynamicMapLayer.js';\nimport { FeatureGrid } from './Layers/FeatureLayer/FeatureGrid.js';\nimport { FeatureManager } from './Layers/FeatureLayer/FeatureManager.js';\nimport { FeatureLayer, featureLayer } from './Layers/FeatureLayer/FeatureLayer.js';\n\nexport var VERSION = '2.0.0-beta.3';\nexport { Support };\nexport { Util };\nexport { get };\nexport { post };\nexport { request };\n\nexport var Tasks = {\n Task: Task,\n task: task,\n Query: Query,\n query: query,\n Find: Find,\n find: find,\n Identify: Identify,\n identify: identify,\n IdentifyFeatures: IdentifyFeatures,\n identifyFeatures: identifyFeatures,\n IdentifyImage: IdentifyImage,\n identifyImage: identifyImage\n};\n\nexport var Services = {\n Service: Service,\n service: service,\n MapService: MapService,\n mapService: mapService,\n ImageService: ImageService,\n imageService: imageService,\n FeatureLayerService: FeatureLayerService,\n featureLayerService: featureLayerService\n};\n\nexport var Layers = {\n BasemapLayer: BasemapLayer,\n basemapLayer: basemapLayer,\n TiledMapLayer: TiledMapLayer,\n tiledMapLayer: tiledMapLayer,\n RasterLayer: RasterLayer,\n ImageMapLayer: ImageMapLayer,\n imageMapLayer: imageMapLayer,\n DynamicMapLayer: DynamicMapLayer,\n dynamicMapLayer: dynamicMapLayer,\n FeatureGrid: FeatureGrid,\n FeatureManager: FeatureManager,\n FeatureLayer: FeatureLayer,\n featureLayer: featureLayer\n};\n\nexport { BasemapLayer };\nexport { basemapLayer };\nexport { TiledMapLayer };\nexport { tiledMapLayer };\nexport { RasterLayer };\nexport { ImageMapLayer };\nexport { imageMapLayer };\nexport { DynamicMapLayer };\nexport { dynamicMapLayer };\nexport { FeatureGrid };\nexport { FeatureManager };\nexport { FeatureLayer };\nexport { featureLayer };\n\nvar _isAmd = (typeof define === 'undefined') ? false : define.amd && typeof define === 'function';\nvar _isCjs = (typeof exports === 'object') && (typeof module !== 'undefined');\nvar _isSystem = window && window.System;\n\nif ((_isAmd || _isCjs || _isSystem) && window && window.L) {\n window.L.esri = {\n VERSION: VERSION,\n Support: Support,\n Util: Util,\n get: get,\n post: post,\n request: request,\n Tasks: Tasks,\n Services: Services,\n Layers: Layers,\n BasemapLayer: BasemapLayer,\n basemapLayer: basemapLayer,\n TiledMapLayer: TiledMapLayer,\n tiledMapLayer: tiledMapLayer,\n RasterLayer: RasterLayer,\n ImageMapLayer: ImageMapLayer,\n imageMapLayer: imageMapLayer,\n DynamicMapLayer: DynamicMapLayer,\n dynamicMapLayer: dynamicMapLayer,\n FeatureGrid: FeatureGrid,\n FeatureManager: FeatureManager,\n FeatureLayer: FeatureLayer,\n featureLayer: featureLayer\n };\n}\n"]} \ No newline at end of file