90 lines
2.9 KiB
HTML
Executable File
90 lines
2.9 KiB
HTML
Executable File
<!DOCTYPE html>
|
|
<html ng-app="myapp">
|
|
<head>
|
|
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
|
|
<script src="https://maps.google.com/maps/api/js?libraries=visualization"></script>
|
|
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.js"></script>
|
|
<!-- build:js scripts/ng-map.min.js -->
|
|
<script src="../app/scripts/app.js"></script>
|
|
<script src="../app/scripts/directives/map_controller.js"></script>
|
|
<script src="../app/scripts/directives/map.js"></script>
|
|
<script src="../app/scripts/directives/marker.js"></script>
|
|
<script src="../app/scripts/directives/shape.js"></script>
|
|
<script src="../app/scripts/directives/heatmap-layer.js"></script>
|
|
<script src="../app/scripts/services/geo_coder.js"></script>
|
|
<script src="../app/scripts/services/navigator_geolocation.js"></script>
|
|
<script src="../app/scripts/services/attr2_options.js"></script>
|
|
<!-- endbuild -->
|
|
<script src="taxi-data.js"></script>
|
|
<script>
|
|
var app = angular.module('myapp', ['ngMap']);
|
|
app.controller('LayerHeatmapCtrl', function($scope) {
|
|
var heatmap;
|
|
$scope.$on('mapInitialized', function(event, map) {
|
|
heatmap = map.heatmapLayers.foo;
|
|
});
|
|
|
|
$scope.toggleHeatmap= function(event) {
|
|
heatmap.setMap(heatmap.getMap() ? null : $scope.map);
|
|
};
|
|
|
|
$scope.changeGradient = function() {
|
|
var gradient = [
|
|
'rgba(0, 255, 255, 0)',
|
|
'rgba(0, 255, 255, 1)',
|
|
'rgba(0, 191, 255, 1)',
|
|
'rgba(0, 127, 255, 1)',
|
|
'rgba(0, 63, 255, 1)',
|
|
'rgba(0, 0, 255, 1)',
|
|
'rgba(0, 0, 223, 1)',
|
|
'rgba(0, 0, 191, 1)',
|
|
'rgba(0, 0, 159, 1)',
|
|
'rgba(0, 0, 127, 1)',
|
|
'rgba(63, 0, 91, 1)',
|
|
'rgba(127, 0, 63, 1)',
|
|
'rgba(191, 0, 31, 1)',
|
|
'rgba(255, 0, 0, 1)'
|
|
]
|
|
heatmap.set('gradient', heatmap.get('gradient') ? null : gradient);
|
|
}
|
|
|
|
$scope.changeRadius = function() {
|
|
heatmap.set('radius', heatmap.get('radius') ? null : 20);
|
|
}
|
|
|
|
$scope.changeOpacity = function() {
|
|
heatmap.set('opacity', heatmap.get('opacity') ? null : 0.2);
|
|
}
|
|
});
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<style>
|
|
div[ng-controller=LayerHeatmapCtrl] {
|
|
position:relative;
|
|
}
|
|
div[ng-controller=LayerHeatmapCtrl] #panel{
|
|
position: absolute;
|
|
top: 5px;
|
|
left: 50%;
|
|
margin-left: -180px;
|
|
z-index: 5;
|
|
background-color: #fff;
|
|
padding: 5px;
|
|
border: 1px solid #999;
|
|
}
|
|
</style>
|
|
<div ng-controller="LayerHeatmapCtrl">
|
|
<div id="panel">
|
|
<button ng-click="toggleHeatmap()">Toggle Heatmap</button>
|
|
<button ng-click="changeGradient()">Change gradient</button>
|
|
<button ng-click="changeRadius()">Change radius</button>
|
|
<button ng-click="changeOpacity()">Change opacity</button>
|
|
</div>
|
|
<map zoom="13" center="37.774546, -122.433523" map-type-id="SATELLITE">
|
|
<heatmap-layer id="foo" data="taxiData"></heatmap>
|
|
</map>
|
|
</div>
|
|
</body>
|
|
</html>
|