openlayers4 入门开发系列之热力图篇(附源码下载)
2023-09-11 14:19:51 时间
前言
openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子,这个也是学习 openlayers4 的好素材。
openlayers4 入门开发系列的地图服务基于 Geoserver 发布的,关于 Geoserver 方面操作的博客,可以参考以下几篇文章:
内容概览
1.基于 openlayers4 实现地图热力图
2.源代码 demo 下载
本篇的重点内容是利用 openlayers4 实现热力图功能,效果图如下:
实现思路
- 热力图界面设计
//热力图 "<div style='height:25px;background:#30A4D5;margin-top:2px;width: 98%;margin-left: 3px;'>" + "<span style='margin-left:5px;font-size: 13px;color:white;'>热力图</span>" + "</div>" + '<div id="heatmapFeatureLayer" style="padding:5px;">' + '<div style="float:left;">' + '<input type="checkbox" name="heatmapFeatureLayer" id="heatmap1" style="width: 15px;height: 15px;vertical-align: middle;margin: auto;"/>' + '<label style="font-weight: normal;vertical-align: middle;margin: auto;">热力图</label>' + '</div>' + '</div>' +
- 热力图点击事件
//加载热力图 $("#heatmapFeatureLayer input").bind("click", function () { if (this.checked) { if(!bxmap.olHeatMap.isLoad){ bxmap.olHeatMap.Init(bmap); } else{ bxmap.olHeatMap.showHeatMapLayer(); } //图例面板显示 $("#map_tl").css("display","block"); $("#map_tl>img").attr('src', getRootPath() +"js/main/olHeatMap/lend_dz.png"); $("#map_tl>img").css("width","165px"); $("#map_tl>img").css("height","165px"); } else { bxmap.olHeatMap.hideHeatMapLayer(); //图例面板隐藏 $("#map_tl").hide(); } }) 热力图初始化以及核心代码实现 Init:function(bmap){ //加载热力图 this.map = bmap.getMap(); this.isLoad = true; this.initHeatMapLayer(dz); }, /** * 初始化加载-热力图 */ initHeatMapLayer:function(data){ var num = data.features.length; if (num > 0) { var features = new Array(num); for (var i = 0; i < num; i++) { var geo = data.features[i].geometry; var coordinate = [geo.x, geo.y]; features[i] = new ol.Feature({ geometry: new ol.geom.Point(coordinate), weight: data.features[i].attributes[field_dz] }); } this.loadHeatLayer(features); } }, loadHeatLayer:function(features){ var self = bxmap.olHeatMap; self.layer = self.createHeatMap({ features: features, radius: self.radius, gradient: self.gradient1 });//创建热力图层 self.map.addLayer(self.layer); self.map.getView().on('change:resolution', self.handleHeatMap); //缩放至范围 self.map.getView().fit(self.layer.getSource().getExtent(), self.map.getSize()); },
更多的详情见:GIS之家小专栏
文章尾部提供源代码下载,对本专栏感兴趣的话,可以关注一波
相关文章
- 【物联网】OpenWrt OpenWRT的源码下载及目录结构
- Silverlight实用窍门系列:43.Silverlight从ListBox拖拽图标到另一ListBox【附带源码实例】
- [Android] repo 下载Android源码(国内镜像)
- 分享Python采集36个PHPJP程序源码,总有一款适合您
- C# ini文件操作【源码下载】
- java坦克大战源码下载
- Backbone源码分析(三)
- maven 下载源码downloadsources
- 安卓源码下载 windows
- Retrofit 简介 wiki 文档 源码解析 MD
- 【云栖大会】阿里云开放AliSQL数据库源码下载
- Angularjs 源码分析2
- idea maven项目下载源码及关联源码
- Linkis源码目录结构详解
- Tomcat卷一 ----架构和初始化源码分析
- ZZNUOJ_用C语言编写程序实现1160:字符串长度(指针专题)(附完整源码)
- openssl源码下载
- 【Android 安装包优化】WebP 应用 ( libwebp 源码下载 | Android.mk 和 Application.mk 构建脚本修改 | libwebp 函数库编译 )
- 【Android 电量优化】JobScheduler 源码分析 ( JobServiceContext 源码分析 | 闭环操作总结 | 用户提交任务 | 广播接收者接受相关广播触发任务执行 )★
- electron 源码下载与编译构建 compile
- CentOS 7 aarch64 源码制作openssh 9.3p1修复漏洞——筑梦之路
- 基于Python的scrapy框架的广州天气爬虫源码下载
- 第二人生的源码分析(四十七)发送下载纹理图片请求
- VC++使用fprintf函数实现写日志文件的功能(附源码)
- SELinux零知识学习六、swig源码下载、编译和安装
- QEMU零知识学习2 —— QEMU源码下载