12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <!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?sensor=false"></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/map-data.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>
- var app = app || angular.module('myApp', ['ngMap']);
- app.controller('LayerDataQuakesAdvCtrl', function($scope) {
- function interpolateHsl(lowHsl, highHsl, fraction) {
- var color = [];
- for (var i = 0; i < 3; i++) {
- // Calculate color based on the fraction.
- color[i] = (highHsl[i] - lowHsl[i]) * fraction + lowHsl[i];
- }
- return 'hsl(' + color[0] + ',' + color[1] + '%,' + color[2] + '%)';
- }
- $scope.styleFunc = function(feature) {
- var low = [151, 83, 34]; // color of mag 1.0
- var high = [5, 69, 54]; // color of mag 6.0 and above
- var minMag = 1.0;
- var maxMag = 6.0;
- // fraction represents where the value sits between the min and max
- var fraction = (Math.min(feature.getProperty('mag'), maxMag) - minMag) /
- (maxMag - minMag);
- var color = interpolateHsl(low, high, fraction);
- return {
- icon: {
- path: google.maps.SymbolPath.CIRCLE,
- strokeWeight: 0.5,
- strokeColor: '#fff',
- fillColor: color,
- fillOpacity: 2 / feature.getProperty('mag'),
- // while an exponent would technically be correct, quadratic looks nicer
- scale: Math.pow(feature.getProperty('mag'), 2)
- },
- zIndex: Math.floor(feature.getProperty('mag'))
- };
- };
- });
- </script>
- </head>
- <body>
- <div ng-controller="LayerDataQuakesAdvCtrl">
- <map zoom="3" center="20, -160"
- styles="[{
- 'featureType': 'all',
- 'elementType': 'all',
- 'stylers': [{'visibility': 'off'}]
- }, {
- 'featureType': 'landscape',
- 'elementType': 'geometry',
- 'stylers': [{'visibility': 'on'}, {'color': '#fcfcfc'}]
- }, {
- 'featureType': 'water',
- 'elementType': 'labels',
- 'stylers': [{'visibility': 'off'}]
- }, {
- 'featureType': 'water',
- 'elementType': 'geometry',
- 'stylers': [{'visibility': 'on'}, {'hue': '#5f94ff'}, {'lightness': 60}]
- }]">
- <map-data
- set-style="styleFunc"
- load-geo-json="scripts/quakes.geo.json"></map-data>
- </map>
- </div>
- </body>
- </html>
|