index.html has been copied without modification from the OpenLayers examples:
https://openlayers.org/en/latest/examples/heatmap-earthquakes.html
index.html has been copied without modification from the OpenLayers examples:
https://openlayers.org/en/latest/examples/heatmap-earthquakes.html
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <title>Earthquakes Heatmap</title> | |
| <link rel="stylesheet" href="https://openlayers.org/en/v5.3.0/css/ol.css" type="text/css"> | |
| <!-- The line below is only needed for old environments like Internet Explorer and Android 4.x --> | |
| <script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=requestAnimationFrame,Element.prototype.classList,URL"></script> | |
| <script src="https://openlayers.org/en/v5.3.0/build/ol.js"></script> | |
| <script src="https://openlayers.org/en/v4.6.5/build/ol.js"></script> | |
| </head> | |
| <body> | |
| <div id="map" class="map"></div> | |
| <form> | |
| <label>radius size</label> | |
| <input id="radius" type="range" min="1" max="50" step="1" value="5"/> | |
| <label>blur size</label> | |
| <input id="blur" type="range" min="1" max="50" step="1" value="15"/> | |
| </form> | |
| <script> | |
| import Map from 'ol/Map.js'; | |
| import View from 'ol/View.js'; | |
| import KML from 'ol/format/KML.js'; | |
| import {Heatmap as HeatmapLayer, Tile as TileLayer} from 'ol/layer.js'; | |
| import Stamen from 'ol/source/Stamen.js'; | |
| import VectorSource from 'ol/source/Vector.js'; | |
| var blur = document.getElementById('blur'); | |
| var radius = document.getElementById('radius'); | |
| var vector = new HeatmapLayer({ | |
| source: new VectorSource({ | |
| url: 'data/kml/2012_Earthquakes_Mag5.kml', | |
| format: new KML({ | |
| extractStyles: false | |
| }) | |
| }), | |
| blur: parseInt(blur.value, 10), | |
| radius: parseInt(radius.value, 10) | |
| }); | |
| vector.getSource().on('addfeature', function(event) { | |
| // 2012_Earthquakes_Mag5.kml stores the magnitude of each earthquake in a | |
| // standards-violating <magnitude> tag in each Placemark. We extract it from | |
| // the Placemark's name instead. | |
| var name = event.feature.get('name'); | |
| var magnitude = parseFloat(name.substr(2)); | |
| event.feature.set('weight', magnitude - 5); | |
| }); | |
| var raster = new TileLayer({ | |
| source: new Stamen({ | |
| layer: 'toner' | |
| }) | |
| }); | |
| var map = new Map({ | |
| layers: [raster, vector], | |
| target: 'map', | |
| view: new View({ | |
| center: [0, 0], | |
| zoom: 2 | |
| }) | |
| }); | |
| blur.addEventListener('input', function() { | |
| vector.setBlur(parseInt(blur.value, 10)); | |
| }); | |
| radius.addEventListener('input', function() { | |
| vector.setRadius(parseInt(radius.value, 10)); | |
| }); | |
| </script> | |
| </body> | |
| </html> |