mohsen-angular-leaflet-directive
Version:
angular-leaflet-directive - An AngularJS directive to easily interact with Leaflet maps
63 lines (59 loc) • 2.55 kB
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>