@@ -918,19 +918,31 @@ angular.module("leaflet-directive").factory('leafletHelpers', ["$q", "$log", fun
918918 }
919919 }
920920 } ,
921- YandexLayerPlugin : {
921+ AGSFeatureLayerPlugin : {
922922 isLoaded : function ( ) {
923- return angular . isDefined ( L . Yandex ) ;
923+ return L . esri !== undefined && L . esri . featureLayer !== undefined ;
924924 } ,
925- is : function ( layer ) {
925+ is : function ( layer ) {
926926 if ( this . isLoaded ( ) ) {
927- return layer instanceof L . Yandex ;
927+ return layer instanceof L . esri . featureLayer ;
928928 } else {
929929 return false ;
930930 }
931931 }
932932 } ,
933- DynamicMapLayerPlugin : {
933+ AGSTiledMapLayerPlugin : {
934+ isLoaded : function ( ) {
935+ return L . esri !== undefined && L . esri . tiledMapLayer !== undefined ;
936+ } ,
937+ is : function ( layer ) {
938+ if ( this . isLoaded ( ) ) {
939+ return layer instanceof L . esri . tiledMapLayer ;
940+ } else {
941+ return false ;
942+ }
943+ }
944+ } ,
945+ AGSDynamicMapLayerPlugin : {
934946 isLoaded : function ( ) {
935947 return L . esri !== undefined && L . esri . dynamicMapLayer !== undefined ;
936948 } ,
@@ -942,6 +954,54 @@ angular.module("leaflet-directive").factory('leafletHelpers', ["$q", "$log", fun
942954 }
943955 }
944956 } ,
957+ AGSImageMapLayerPlugin : {
958+ isLoaded : function ( ) {
959+ return L . esri !== undefined && L . esri . imageMapLayer !== undefined ;
960+ } ,
961+ is : function ( layer ) {
962+ if ( this . isLoaded ( ) ) {
963+ return layer instanceof L . esri . imageMapLayer ;
964+ } else {
965+ return false ;
966+ }
967+ }
968+ } ,
969+ AGSClusteredLayerPlugin : {
970+ isLoaded : function ( ) {
971+ return L . esri !== undefined && L . esri . clusteredFeatureLayer !== undefined ;
972+ } ,
973+ is : function ( layer ) {
974+ if ( this . isLoaded ( ) ) {
975+ return layer instanceof L . esri . clusteredFeatureLayer ;
976+ } else {
977+ return false ;
978+ }
979+ }
980+ } ,
981+ AGSHeatmapLayerPlugin : {
982+ isLoaded : function ( ) {
983+ return L . esri !== undefined && L . esri . heatmapFeatureLayer !== undefined ;
984+ } ,
985+ is : function ( layer ) {
986+ if ( this . isLoaded ( ) ) {
987+ return layer instanceof L . esri . heatmapFeatureLayer ;
988+ } else {
989+ return false ;
990+ }
991+ }
992+ } ,
993+ YandexLayerPlugin : {
994+ isLoaded : function ( ) {
995+ return angular . isDefined ( L . Yandex ) ;
996+ } ,
997+ is : function ( layer ) {
998+ if ( this . isLoaded ( ) ) {
999+ return layer instanceof L . Yandex ;
1000+ } else {
1001+ return false ;
1002+ }
1003+ }
1004+ } ,
9451005 GeoJSONPlugin : {
9461006 isLoaded : function ( ) {
9471007 return angular . isDefined ( L . TileLayer . GeoJSON ) ;
@@ -1202,6 +1262,7 @@ angular.module("leaflet-directive")
12021262 var isObject = leafletHelpers . isObject ;
12031263 var isArray = leafletHelpers . isArray ;
12041264 var isDefined = leafletHelpers . isDefined ;
1265+ var errorHeader = leafletHelpers . errorHeader ;
12051266 var $it = leafletIterators ;
12061267
12071268 var utfGridCreateLayer = function ( params ) {
@@ -1382,20 +1443,81 @@ angular.module("leaflet-directive")
13821443 return layer ;
13831444 }
13841445 } ,
1385- dynamic : {
1446+ agsFeature : {
1447+ mustHaveUrl : true ,
1448+ createLayer : function ( params ) {
1449+ if ( ! Helpers . AGSFeatureLayerPlugin . isLoaded ( ) ) {
1450+ $log . warn ( errorHeader + ' The esri plugin is not loaded.' ) ;
1451+ return ;
1452+ }
1453+ return L . esri . featureLayer ( params . url , params . options ) ;
1454+ }
1455+ } ,
1456+ agsTiled : {
13861457 mustHaveUrl : true ,
13871458 createLayer : function ( params ) {
1388- if ( ! Helpers . DynamicMapLayerPlugin . isLoaded ( ) ) {
1459+ if ( ! Helpers . AGSTiledMapLayerPlugin . isLoaded ( ) ) {
1460+ $log . warn ( errorHeader + ' The esri plugin is not loaded.' ) ;
1461+ return ;
1462+ }
1463+ return L . esri . tiledMapLayer ( params . url , params . options ) ;
1464+ }
1465+ } ,
1466+ agsDynamic : {
1467+ mustHaveUrl : true ,
1468+ createLayer : function ( params ) {
1469+ if ( ! Helpers . AGSDynamicMapLayerPlugin . isLoaded ( ) ) {
1470+ $log . warn ( errorHeader + ' The esri plugin is not loaded.' ) ;
13891471 return ;
13901472 }
13911473 return L . esri . dynamicMapLayer ( params . url , params . options ) ;
13921474 }
13931475 } ,
1476+ agsImage : {
1477+ mustHaveUrl : true ,
1478+ createLayer : function ( params ) {
1479+ if ( ! Helpers . AGSImageMapLayerPlugin . isLoaded ( ) ) {
1480+ $log . warn ( errorHeader + ' The esri plugin is not loaded.' ) ;
1481+ return ;
1482+ }
1483+ return L . esri . imageMapLayer ( params . url , params . options ) ;
1484+ }
1485+ } ,
1486+ agsClustered : {
1487+ mustHaveUrl : true ,
1488+ createLayer : function ( params ) {
1489+ if ( ! Helpers . AGSClusteredLayerPlugin . isLoaded ( ) ) {
1490+ $log . warn ( errorHeader + ' The esri clustered layer plugin is not loaded.' ) ;
1491+ return ;
1492+ }
1493+
1494+ if ( ! Helpers . MarkerClusterPlugin . isLoaded ( ) ) {
1495+ $log . warn ( errorHeader + ' The markercluster plugin is not loaded.' ) ;
1496+ return ;
1497+ }
1498+ return L . esri . clusteredFeatureLayer ( params . url , params . options ) ;
1499+ }
1500+ } ,
1501+ agsHeatmap : {
1502+ mustHaveUrl : true ,
1503+ createLayer : function ( params ) {
1504+ if ( ! Helpers . AGSHeatmapLayerPlugin . isLoaded ( ) ) {
1505+ $log . warn ( errorHeader + ' The esri heatmap layer plugin is not loaded.' ) ;
1506+ return ;
1507+ }
1508+
1509+ if ( ! Helpers . HeatLayerPlugin . isLoaded ( ) ) {
1510+ $log . warn ( errorHeader + ' The heatlayer plugin is not loaded.' ) ;
1511+ return ;
1512+ }
1513+ return L . esri . heatmapFeatureLayer ( params . url , params . options ) ;
1514+ }
1515+ } ,
13941516 markercluster : {
13951517 mustHaveUrl : false ,
13961518 createLayer : function ( params ) {
13971519 if ( ! Helpers . MarkerClusterPlugin . isLoaded ( ) ) {
1398- $log . error ( '[AngularJS - Leaflet] The markercluster plugin is not loaded.') ;
1520+ $log . warn ( errorHeader + ' The markercluster plugin is not loaded.') ;
13991521 return ;
14001522 }
14011523 return new L . MarkerClusterGroup ( params . options ) ;
0 commit comments