UNPKG

mohsen-angular-leaflet-directive

Version:

angular-leaflet-directive - An AngularJS directive to easily interact with Leaflet maps

63 lines (59 loc) 2.55 kB
<!DOCTYPE html> <html ng-app="demoapp"> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="../bower_components/angular/angular.min.js"></script> <script src="../bower_components/leaflet/dist/leaflet.js"></script> <script src="../bower_components/Leaflet.utfgrid/dist/leaflet.utfgrid.js"></script> <script src="../dist/angular-leaflet-directive.min.js"></script> <link rel="stylesheet" href="../bower_components/leaflet/dist/leaflet.css" /> <script> var app = angular.module("demoapp", ["leaflet-directive"]); app.controller("LayersUTFGridController", [ "$scope", function($scope) { angular.extend($scope, { center: { lat: 0, lng: 0, zoom: 1 }, layers: { baselayers: { xyz: { name: 'OpenStreetMap', url: 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', type: 'xyz' } }, overlays: { demosutfgrid: { name: 'UTFGrid Interactivity', type: 'utfGrid', url: 'http://{s}.tiles.mapbox.com/v3/mapbox.geography-class/{z}/{x}/{y}.grid.json?callback={cb}', visible: true } } } }); $scope.interactivity = ""; $scope.flag = ""; $scope.$on('leafletDirectiveMap.utfgridMouseover', function(event, leafletEvent) { // the UTFGrid information is on leafletEvent.data $scope.interactivity = leafletEvent.data.admin; $scope.flag = "data:image/png;base64," + leafletEvent.data.flag_png; }); $scope.$on('leafletDirectiveMap.utfgridMouseout', function(event, leafletEvent) { $scope.interactivity = ""; $scope.flag = ""; }); }]); </script> </style> </head> <body ng-controller="LayersUTFGridController"> <leaflet lf-center="center" lf-layers="layers" width="100%" height="480px"></leaflet> <h1>Baselayer with UTFGrid interactivity in Overlay</h1> <p>Mouse over the map regions to interact with UTFGrid.</p> <h2>{{interactivity}}</h2> <p><img ng-src="{{flag}}"></p> </body> </html>