heatmap for arcgisjsapi
在arcgis for js api 环境下使用heatmap插件。
由于最新的heatmap没有提供 for arcgisjsapi 插件,懒得研究新版本代码,所以这里用的还是老版本的heatmap。
但是老的版本插件有个问题,就是在点聚合计算的时候是按照原坐标点分组的,这就造成当坐标值的精度很高时,所有的点都会单独作为一组,无论两个点相距多近。最终的结果就是地图上的每一个点都会是最高值,地图看起来是这样的。

解决方法就是 在 parseHeatmapData 方法中做干预,让其按照屏幕坐标分组而不是更为精确的经纬度(如果希望容差更大,还可以对屏幕坐标做四舍五入,容差增大十倍)。
修改后的parseHeatmapData 方法
parseHeatmapData: function (dataPoints) {
// variables
var i, parsedData, dataPoint;
// if data points exist
if (dataPoints) {
// create parsed data object
parsedData = {
max: 0,
data: []
};
if (!this.config.useLocalMaximum) {
parsedData.max = this.globalMax;
}
// for each data point
for (i = 0; i < dataPoints.length; i++) {
// create geometry point
vdataPoint = esri.geometry.Point(dataPoints[i].geometry);
dataPoint = esri.geometry.toScreenGeometry(this._map.extent, this._map.width, this._map.height, vdataPoint);
//dataPoint
// if array value is undefined
if (!parsedData.data[dataPoint.x]) {
// create empty array value
parsedData.data[dataPoint.x] = [];
}
// array value array is undefined
if (!parsedData.data[dataPoint.x][dataPoint.y]) {
// create object in array
parsedData.data[dataPoint.x][dataPoint.y] = {};
// if count is defined in datapoint
if (dataPoint.hasOwnProperty('count')) {
// create array value with count of count set in datapoint
parsedData.data[dataPoint.x][dataPoint.y].count = dataPoint.count;
} else {
// create array value with count of 0
parsedData.data[dataPoint.x][dataPoint.y].count = 0;
}
}
// add 1 to the count
parsedData.data[dataPoint.x][dataPoint.y].count += 1;
// store dataPoint var
parsedData.data[dataPoint.x][dataPoint.y].dataPoint = vdataPoint;
// if count is greater than current max
if (parsedData.max < parsedData.data[dataPoint.x][dataPoint.y].count) {
// set max to this count
parsedData.max = parsedData.data[dataPoint.x][dataPoint.y].count;
if (!this.config.useLocalMaximum) {
this.globalMax = parsedData.data[dataPoint.x][dataPoint.y].count;
}
}
}
// convert parsed data into heatmap plugin formatted data
this.convertHeatmapData(parsedData);
}
},
修改后的效果:

heatmap for arcgisjsapi的更多相关文章
- 基于HTML5实现3D热图Heatmap应用
Heatmap热图通过众多数据点信息,汇聚成直观可视化颜色效果,热图已广泛被应用于气象预报.医疗成像.机房温度监控等行业,甚至应用于竞技体育领域的数据分析. http://www.hightopo.c ...
- 【JS】heatmap.js v1.0 到 v2.0,详细总结一下:)
前段时间,项目要开发热力图插件,研究了heatmap.js,打算好好总结一下. 本文主要有以下几部分内容: 部分源码理解 如何迁移到v2.0 v2.0官方文档译文 关于heatmap.js介绍,请看这 ...
- funsioncharts的图表操作heatmap
网址:http://www.fusioncharts.com/dev/chart-guide/heat-map-chart/introduction.html 以下只是假数据,目前还没有实现动态数据获 ...
- 用Excel制作热图(heatmap)的方法
http://jingyan.baidu.com/article/64d05a0240ec75de55f73bd8.html 利用Excel 2010及以上版本的"条件格式"--& ...
- Heatmap.js v2.0 – 最强大的 Web 动态热图
Heatmap 是用来呈现一定区域内的统计度量,最常见的网站访问热力图就是以特殊高亮的形式显示访客热衷的页面区域和访客所在的地理区域的图示.Heatmap.js 这个 JavaScript 库可以实现 ...
- R实战之热点图(HeatMap)
快速实现是搜索帮助文档的首要目的,所以此处涉及实战的文章一概略去传统帮助文档的理论部分,直接上代码加注释! 本文将介绍R语言下利用ggplot2包制作heatmap的代码 -------------- ...
- 基于HTML5实现的Heatmap热图3D应用
Heatmap热图通过众多数据点信息,汇聚成直观可视化颜色效果,热图已广泛被应用于气象预报.医疗成像.机房温度监控等行业,甚至应用于竞技体育领域的数据分析. 已有众多文章分享了生成Heatmap热图原 ...
- 网页热力图 heatmap js
HBuilder +js 实现网页热力图 废话不多说,上代码 <!DOCTYPE html> <html> <head> <title>111</ ...
- heatmap.2
heatmap.2 {gplots} R Documentation Enhanced Heat Map Description A heat map is a false color image ( ...
随机推荐
- [android] 练习PopupWindow实现对话框
练习使用Dialog实习对话框 package com.example.tsh; import android.app.Activity; import android.app.Dialog; imp ...
- MySQL:ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
错误 原因:可能是服务没有启动 以管理员身份打开cmd 输入 net start mysql
- HDU-3790 最短路最小花费
判断路径相等时的情况 #include <iostream> #include <cstring> #include <algorithm> #include &l ...
- css移动端:acitve效果的实现
做移动前端也有一些日子了,一直有个问题没有解决,就是与pc端那样的一个:hover的效果,:hover是鼠标指针浮动在其上的元素的一个选择器,但因为在移动端是没有鼠标的,代替的是触摸屏,用户也不是有“ ...
- centos install redis
1. 下载 [logan@localhost java]$ wget http://download.redis.io/releases/redis-3.2.8.tar.gz2. 解压 [log ...
- Windows操作系统下给文件夹右键命令菜单添加启动命令行的选项
在命令行中或按下[WIN]+[R]键启动运行对话框的情况下,输入regedit命令启动注册表编辑器,在HKEY_CLASSES_ROOT\Folder\shell下增加一个“CMD”(此处名字可以随便 ...
- 建立makefile
一.目的 1.1 熟悉makefile的基本规则,学会建立自己的makefile,通过makefile提高编程效率 1.2 学会通过autotools建立makefile来更好更高效地管理软件项目工程 ...
- Java在Web开发语言上败给了PHP(转)
PHP的主要语言开发者之一.Zend公司的创始人之一Andi Gutmans最近在blog中直言不讳地批评了Java语言.他指出,目前Java厂商试图在JVM上提供动态语言实现的路子根本不对,Java ...
- 十五、css3 Filter--滤镜
如何实现下图的效果-—这里就用到了滤镜 给灰色弹框这个标签元素加“伪类”如下: #nearStoreContent .popChoose li:before { 1. z-index:; 2. pos ...
- spring-wind 搭建过程问题记录
最近想搭一个 shiro+ssm的快速开发框架,用于后台管理以及微信公众号的开发.后台主要是权限管理,于是选择有spring+shiro,微信公众号的前端页面搜了下有用velocity开发的,刚好看到 ...