&..._openlayers地图热力图">
当前位置:   article > 正文

OpenLayers绘制热力图 代码记录

openlayers地图热力图

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助

做地图开发,往往需要掌握专题地图制作的技能。今天用OpenLayers6来做一个热力图的效果。

页面效果:

代码部分:

  1. <!DOCTYPE html>
  2. <html lang="zh-cmn-Hans">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>热力图</title>
  8. <link rel="stylesheet" href="/css/ol.css">
  9. <script src="/js/ol.js"></script>
  10. <script src="heatmap.js"></script>
  11. <script type="text/javascript">
  12. window.onload = function () {map();}
  13. </script>
  14. <style>
  15. #map{
  16. position: fixed;
  17. width: 100%;
  18. height: 100%;
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <form style="position: absolute;left: 200px;z-index: 999;color: blue;">
  24. <label>半径大小</label>
  25. <input id="radius" type="range" min="1" max="50" step="1" value="20" />
  26. <label>模糊大小</label>
  27. <input id="blur" type="range" min="1" max="50" step="1" value="25" />
  28. </form>
  29. <div id="map"></div>
  30. </body>
  31. </html>

JavaScript部分:

  1. /*
  2. * heatmap.js
  3. */
  4. var map1;
  5. function map(){
  6. map1 = new ol.Map({
  7. target: 'map', //地图容器div的id
  8. loadTilesWhileInteracting: true,
  9. layers: [],
  10. view: new ol.View({
  11. center: [12622513, 2636878], //地图初始中心点
  12. zoom: 9, //地图初始显示级别
  13. }),
  14. controls: ol.control.defaults({}).extend([])
  15. });
  16. // 开始做热力图相关功能
  17. let blur = document.getElementById("blur");
  18. let radius = document.getElementById("radius");
  19. var wandaVector = new ol.source.Vector({
  20. url: "/热力图/wanda.geojson",
  21. format: new ol.format.GeoJSON()
  22. });
  23. //定义热力图图层
  24. let vector = new ol.layer.Heatmap({
  25. source: wandaVector,
  26. blur: parseInt(blur.value, 10),
  27. radius: parseInt(radius.value, 10),
  28. });
  29. // 模糊按钮的回调函数
  30. let blurHandler = function (){
  31. vector.setBlur(parseInt(blur.value, 10));
  32. };
  33. blur.addEventListener("input", blurHandler);
  34. blur.addEventListener("change", blurHandler);
  35. // 半径按钮的回调函数
  36. let radiusHandler = function () {
  37. vector.setRadius(parseInt( radius.value, 10));
  38. };
  39. radius.addEventListener("input", radiusHandler);
  40. radius.addEventListener("change", radiusHandler);
  41. //添加OSM地图作为底图
  42. var osm = new ol.layer.Tile({
  43. source: new ol.source.OSM()
  44. });
  45. map1.addLayer(osm);
  46. map1.addLayer(vector);
  47. }

数据部分:wanda.geojson

  1. {
  2. "type": "FeatureCollection",
  3. "name": "wanda",
  4. "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
  5. "features": [
  6. { "type": "Feature", "properties": { "name": "万达影城(增城万达广场店)", "lng": 113.821841, "lat": 23.281847, "address": "广州市增城区荔城街增城大道69号万达广场F4" }, "geometry": { "type": "Point", "coordinates": [ 113.821841, 23.281847 ] } },
  7. { "type": "Feature", "properties": { "name": "万达影城(南沙万达广场店)", "lng": 113.538016, "lat": 22.800097, "address": "广州市南沙区双山大道3号万达广场4层" }, "geometry": { "type": "Point", "coordinates": [ 113.538016, 22.800097 ] } },
  8. { "type": "Feature", "properties": { "name": "万达影城(万胜广场店)", "lng": 113.388917, "lat": 23.103397, "address": "广东省广州市海珠区新港东路1236号万胜广场五层" }, "geometry": { "type": "Point", "coordinates": [ 113.388917, 23.103397 ] } },
  9. { "type": "Feature", "properties": { "name": "万达影城(融创茂店)", "lng": 113.240693, "lat": 23.431699, "address": "广州市花都区凤凰北路63号融创茂购物中心3楼" }, "geometry": { "type": "Point", "coordinates": [ 113.240693, 23.431699 ] } },
  10. { "type": "Feature", "properties": { "name": "万达影城(广州番禺万达广场店)", "lng": 113.356523, "lat": 23.012651, "address": "广州市番禺区南村镇汉溪大道东389号番禺万达广场4层" }, "geometry": { "type": "Point", "coordinates": [ 113.356523, 23.012651 ] } },
  11. { "type": "Feature", "properties": { "name": "万达影城(广州海珠万达广场店)", "lng": 113.320582, "lat": 23.089375, "address": "广州市海珠区广州大道南978号601铺" }, "geometry": { "type": "Point", "coordinates": [ 113.320582, 23.089375 ] } },
  12. { "type": "Feature", "properties": { "name": "万达影城(白云万达广场店)", "lng": 113.273067, "lat": 23.178271, "address": "广州市白云区云城东路503号万达广场娱乐楼三层" }, "geometry": { "type": "Point", "coordinates": [ 113.273067, 23.178271 ] } },
  13. { "type": "Feature", "properties": { "name": "万达影城(盈熙广场店)", "lng": 113.293956, "lat": 23.07975, "address": "广州市海珠区江南大道南689-709号盈熙广场2层" }, "geometry": { "type": "Point", "coordinates": [ 113.293956, 23.07975 ] } },
  14. { "type": "Feature", "properties": { "name": "万达影城(萝岗万达店)", "lng": 113.47294, "lat": 23.174362, "address": "广州市黄埔区开创大道与科丰路交汇处万达广场F4" }, "geometry": { "type": "Point", "coordinates": [ 113.47294, 23.174362 ] } },
  15. { "type": "Feature", "properties": { "name": "万达影城(万科广场店)", "lng": 113.411133, "lat": 23.172774, "address": "广州市天河区华观路天河万科广场4层" }, "geometry": { "type": "Point", "coordinates": [ 113.411133, 23.172774 ] } },
  16. { "type": "Feature", "properties": { "name": "万达影城(广州万达影城番禺奥园广场店)", "lng": 113.365178, "lat": 22.929663, "address": "广州市番禺区桥南街福德路281号奥园广场三楼万达影城" }, "geometry": { "type": "Point", "coordinates": [ 113.365178, 22.929663 ] } },
  17. { "type": "Feature", "properties": { "name": "万达影城(亚运城广场店)", "lng": 113.482628, "lat": 22.94697, "address": "广东省广州市番禺区石楼镇康体路43号亚运城广场3楼" }, "geometry": { "type": "Point", "coordinates": [ 113.482628, 22.94697 ] } },
  18. { "type": "Feature", "properties": { "name": "广州永和万达电影城(永和里享家店)", "lng": 113.574286, "lat": 23.201214, "address": "广东省广州市黄埔区新业路23号" }, "geometry": { "type": "Point", "coordinates": [ 113.574286, 23.201214 ] } },
  19. { "type": "Feature", "properties": { "name": "万达国际影城(广州新塘万达广场店)", "lng": 113.624387, "lat": 23.158623, "address": "广州市增城区新塘镇新福路9号新塘万达广场4F万达影城" }, "geometry": { "type": "Point", "coordinates": [ 113.624387, 23.158623 ] } },
  20. { "type": "Feature", "properties": { "name": "万达影城", "lng": 113.237061, "lat": 23.430949, "address": "广州市花都区蓝楹街融创茂" }, "geometry": { "type": "Point", "coordinates": [ 113.237061, 23.430949 ] } }
  21. ]
  22. }

如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

 

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号