GeoServer发布Heatmap

百度等热力图是使用开源的heatmap.js做的,但是这种解决方案的缺陷是:

1 数据量大的话,从前端通过后台查询比较费时,比如arcserver默认设置返回1000条查询记录,3000条就很卡了,对动辄上万多数据可行性不高。

2 前端对大数据添加渲染压力也大。

如果所有的数据在服务端生成渲染图片输出到前端,这两个问题都迎刃而解。

本文便阐述如何使用geoserer在服务端生成热力图,返回前端地图显示。

一  环境部署

正常部署geoserver,本次版本是2.6

下载地址:http://geoserver.org/release/stable/

另外要下载GeoServer发布Heatmap_第1张图片

Extensions的wps扩展插件。

解压wps,将jar包放进geoserver部署的web-INF/lib中,重启geoserver。


二 生成热力图的样式文件heatmap.sld


   
     
       Heatmap
       
         Heatmap
         A heatmap surface showing population density
         
           
             
               
                 data
               
               
                 weightAttr
                 jan_je
               
               
                 radiusPixels
                 
                   radius
                   100
                 
               
               
                 pixelsPerCell
                 10
               
               
                 outputBBOX
                 
                   wms_bbox
                 
               
               
                 outputWidth
                 
                   wms_width
                 
               
               
                 outputHeight
                 
                   wms_height
                 
               
             
           
          
            
            
              
                geom
              0.6
				
                
                
                
                
                
              
            
           
         
       
     
    


 
  weightAttr标签指定权重字段,在这里我设置weightAttrz权重字段名称为jan_je。 
  colormap中的热力图符号和范围设置,也是可以改和设置的。 
   
  
geom这里是指定渲染的图形字段,查看数据库空间数据表的图形字段名称,如果是geom就写geom,如果是the_geom就写the_geom,根据自己数据库中图形字段名称来。在geoserver>styles中发布这样的一个sld文件。

三 测试

3.1 使用geoserver发布一个点图层,加载sld

 
  GeoServer发布Heatmap_第2张图片 
  

default style那设置发布的sld文件。

确定,发布。

3.2 openlayer加载wms点图层





热力图展示


    
    









四  效果图

GeoServer发布Heatmap_第3张图片

GeoServer发布Heatmap_第4张图片



你可能感兴趣的:(开源GIS)