304Arcgis_for_js热力图4.21(03)

JavaScript019

304Arcgis_for_js热力图4.21(03),第1张

1,使用FeatureLayer创建热力图

目前 HeatmapRenderer 还不支持在SceneViews中使用,只能在二维点图层中使用

利用开源heatmap结合arcgis api for js实现

自定义HeatmapLayer类,继承DynamicMapServiceLayer,然后结合heatmap.js一起

这个之前在3.X中用过。4.X中没这么使用过

此src表示为web的根目录 即 WebRoot下 建议加个images文件夹放图

可写成 src="images/45.......224.jpg"/>

建议写成 绝对路径

在生成xxxx.jsp文件时 系统会在 上面增加:

<%

String path = request.getContextPath()

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"

%>

在这里 只要写成

src="<%=basePath%>images/45.......224.jpg"/>

就绝对不会错

热力图,在空间数据可视化场景中是一个非常常见的需求。首先看下一个完整的热力图效果。

前端实现热力图的原理可以看该 博文 。本文不是探究热力图前端实现原理的,是来探讨由于热力图一次性加载的点过多,产生卡顿的问题。

前面的 博文 也提出了自己的解决办法。但是若数据居多(10w+),光数据传输就头疼。现有的热力图的前端组件有很多,可以用openlayer、高德地图js、百度地图js、mapbox等。但是大多数的数据结构的都是下面这种形式。

所以需要在后台将下面策略实现,给前台页面传输合适的数据就行。

借助postgresql的width_bucket和postgis,仅用0.4s将20W的数据压缩到2500,这就大大降低了数据传输和渲染的压力。同时也不需要对已有的GIS前端热力图组件进行修改。

德哥的文章

数据可视化:浅谈热力图如何在前端实现