热力图制作过程与心得

本文分享了作者在制作热力图过程中使用openlayers和heatmap.js的心得体会,概述了相关技术的应用。
摘要由CSDN通过智能技术生成

最近做了热力图方面的工作,学习了很多新的知识,总结一下

使用了openlayers和heatmap.js

OpenLayers.Layer.Heatmap = OpenLayers.Class(OpenLayers.Layer, {
	// the heatmap isn't a basic layer by default - you usually want to display the heatmap over another map ;)
	isBaseLayer: false,
	heatmap: null,
	mapLayer: null,
	// we store the lon lat data, because we have to redraw with new positions on zoomend|moveend
	tmpData: {},
        initialize: function(name, map, mLayer, hmoptions, options){
            var heatdiv = document.createElement("div"),
                handler;

            OpenLayers.Layer.prototype.initialize.apply(this, [name, options]);

	    heatdiv.style.cssText = "position:absolute;width:"+map.size.w+"px;height:"+map.size.h+"px;";
	    // this will be the heatmaps element
	    this.div.appendChild(heatdiv);
	    // add to our heatmap.js config
	    hmoptions.element = heatdiv;
	    this.mapLayer = mLayer;
	    this.map = map;
	    var config = {
  				container: document.getElementById('map'),
  				radius: 5,
  				maxOpacity: .6,
  				minOpacity: 0,
  				blur: 1,
  				
  				gradient: {
    			
    			'0.45': 'rgb(123,104,238)', 
    			'0.55': 'rgb(0,0,255)',
    			'0.65': 'rgb(0,255,255)', 
    			'0.95': 'rgb(0,255,0)', 
    			'1.0': 'yellow'
  }
};
					config.element = heatdiv;
					var unconfig = {
  				container: document.getElementById('map'),
  				radius: 5,
  				maxOpacity: .9,
  				minOpacity: 0,
  				blur: 1,
  				
  				gradient: {
    			
    			'0.45': 'rgb(176,196,222)', 
    			'0.55': 'rgb(123,104,238)',
    			'0.65': 'rgb(30,144,255)', 
    			'0.95': 'rgb(0,255,255)', 
    			'1.0': 'rgb(127,255,0)'
  }
};
					unconfig.element = heatdiv;
//定义了三个heatmap的模板
this.heatmap = h337.create(hmoptions);//创建heatmap handler = function(){ if(this.tmpData.max){ this.updateLayer(); } }; change = function(){ if(this.map.getZoom()==2){ this.heatmap.cleanup(); this.heatmap = h337.create(config); if(this.tmpData.max){ this.updateLayer(); } }else if(this.map.getZoom()<2){ this.heatmap.cleanup(); this.heatmap = h337.create(unconfig); if(this.tmpData.max){ this.updateLayer(); } }else{ this.heatm
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
三维热力图是一种以特殊高亮的形式显示访客热衷的页面区域或访客所在的地理区域的图示。它可以通过基于样方的方法或基于核密度的方法来制作。基于样方的三维热力图使用样方计数法(Quadrate Analysis)来分析点模式的一阶效应,即事件之间的绝对位置对结果具有决定作用。这种方法通过将空间划分为小的正方形区域,并计算每个区域内的事件数量来制作热力图。\[1\] 另一种制作三维热力图的方法是基于核密度的方法。核密度法(Kernel Density Estimation)用于分析点模式的二阶效应,即事件之间的相对位置和距离对结果具有决定作用。这种方法通过在每个点周围创建一个核函数,并根据点的密度来计算每个位置的热力值,然后将这些值绘制成热力图。\[2\] 制作GIS三维热力图可以根据具体需求选择适合的方法,基于样方的方法适用于分析事件的绝对位置,而基于核密度的方法适用于分析事件的相对位置和距离。这些方法可以帮助我们理解空间点过程,并发现隐藏在数据背后的规律。\[2\] #### 引用[.reference_title] - *1* *2* *3* [GIS可视化—热力图制作与热点分析(一)](https://blog.csdn.net/sunlianglong/article/details/79773663)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值