layer-heatmap.html 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <!DOCTYPE html>
  2. <html ng-app="myapp">
  3. <head>
  4. <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
  5. <script src="https://maps.google.com/maps/api/js?libraries=visualization"></script>
  6. <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.js"></script>
  7. <!-- build:js scripts/ng-map.min.js -->
  8. <script src="../app/scripts/app.js"></script>
  9. <script src="../app/scripts/directives/map_controller.js"></script>
  10. <script src="../app/scripts/directives/map.js"></script>
  11. <script src="../app/scripts/directives/marker.js"></script>
  12. <script src="../app/scripts/directives/shape.js"></script>
  13. <script src="../app/scripts/directives/heatmap-layer.js"></script>
  14. <script src="../app/scripts/services/geo_coder.js"></script>
  15. <script src="../app/scripts/services/navigator_geolocation.js"></script>
  16. <script src="../app/scripts/services/attr2_options.js"></script>
  17. <!-- endbuild -->
  18. <script src="taxi-data.js"></script>
  19. <script>
  20. var app = angular.module('myapp', ['ngMap']);
  21. app.controller('LayerHeatmapCtrl', function($scope) {
  22. var heatmap;
  23. $scope.$on('mapInitialized', function(event, map) {
  24. heatmap = map.heatmapLayers.foo;
  25. });
  26. $scope.toggleHeatmap= function(event) {
  27. heatmap.setMap(heatmap.getMap() ? null : $scope.map);
  28. };
  29. $scope.changeGradient = function() {
  30. var gradient = [
  31. 'rgba(0, 255, 255, 0)',
  32. 'rgba(0, 255, 255, 1)',
  33. 'rgba(0, 191, 255, 1)',
  34. 'rgba(0, 127, 255, 1)',
  35. 'rgba(0, 63, 255, 1)',
  36. 'rgba(0, 0, 255, 1)',
  37. 'rgba(0, 0, 223, 1)',
  38. 'rgba(0, 0, 191, 1)',
  39. 'rgba(0, 0, 159, 1)',
  40. 'rgba(0, 0, 127, 1)',
  41. 'rgba(63, 0, 91, 1)',
  42. 'rgba(127, 0, 63, 1)',
  43. 'rgba(191, 0, 31, 1)',
  44. 'rgba(255, 0, 0, 1)'
  45. ]
  46. heatmap.set('gradient', heatmap.get('gradient') ? null : gradient);
  47. }
  48. $scope.changeRadius = function() {
  49. heatmap.set('radius', heatmap.get('radius') ? null : 20);
  50. }
  51. $scope.changeOpacity = function() {
  52. heatmap.set('opacity', heatmap.get('opacity') ? null : 0.2);
  53. }
  54. });
  55. </script>
  56. </head>
  57. <body>
  58. <style>
  59. div[ng-controller=LayerHeatmapCtrl] {
  60. position:relative;
  61. }
  62. div[ng-controller=LayerHeatmapCtrl] #panel{
  63. position: absolute;
  64. top: 5px;
  65. left: 50%;
  66. margin-left: -180px;
  67. z-index: 5;
  68. background-color: #fff;
  69. padding: 5px;
  70. border: 1px solid #999;
  71. }
  72. </style>
  73. <div ng-controller="LayerHeatmapCtrl">
  74. <div id="panel">
  75. <button ng-click="toggleHeatmap()">Toggle Heatmap</button>
  76. <button ng-click="changeGradient()">Change gradient</button>
  77. <button ng-click="changeRadius()">Change radius</button>
  78. <button ng-click="changeOpacity()">Change opacity</button>
  79. </div>
  80. <map zoom="13" center="37.774546, -122.433523" map-type-id="SATELLITE">
  81. <heatmap-layer id="foo" data="taxiData"></heatmap>
  82. </map>
  83. </div>
  84. </body>
  85. </html>