PIE SDK热力图

 

1.算法功能简介

    热力图,也就热图或者热点图,它能以特殊高亮的的形式显示某一区域的等级的优越性、重要性或者某一区域类别的密度和变换趋势;例如百度地图热力图 是用不同颜色的区块叠加在地图上实时描述人群分布、密度和变化趋势的一个产品,是基于百度大数据的一个便民出行服务。

 

    上图主要显示一个城市的某个地方人员比较集中甚至拥挤程度,颜色越深表示人员越多,颜色浅代表人比较少,可以提前考虑自己的行程避开人多的地方。

PIE支持算法功能的执行,下面对热力图算法功能进行介绍。

2.算法功能实现说明

2.1. 实现步骤

第一步

算法参数设置

第二步

算法执行

第三步

结果显示

2.2. 算法参数

 

C#算法DLL

PIE.CommonAlgo.dll

C#算法名称

PIE.CommonAlgo.HotMapContructAlgo

参数结构体

HotMapContruct_Exchange_Info

参数说明

BCreateFeatureDataset

bool

是否创建矢量数据集

BUseWeightFiled

bool

是否使用权重字段

CellSize

double

像元大小(影响输出宽高 为负数不参与计算)

DefualtWeightValue

int

默认权重值(0-255,不使用权重字段情况下)

DeviceHeight

int

输出影像高度

DeviceWidth

int

输出影像宽度(高度自动计算)

InputFeatureDataset

IFeatureDataset

输入矢量数据集

ListInvalidValue

IList<double>

无效值列表

OutputFeatureDataset

IFeatureDataset

输出矢量数据集(内存)

OutputRasterDataset

IRasterDataset

输出栅格数据集

OutRasterFilePath

string

输出栅格路径

OutRasterType

string

输出栅格类型

Radius

double

半径(像素单位)

WeightFeildName

String

权重字段名称

2.3. 示例代码

数据路径

百度云盘地址下/PIE示例数据/矢量数据/Shape/省会城市.shp

视频路径

百度云盘地址下/10.算法调用/实用工具/热力图算法.avi

示例代码

 1         /// <summary>
 2         /// 热力图生成算法
 3         /// </summary>
 4         private void Test_HotMapContructAlgo()
 5         {
 6             #region 1参数设置
 7             string strFileName = @"D:\data\China\省会城市.shp";
 8             IFeatureDataset fDataset = PIE.DataSource.DatasetFactory.OpenFeatureDataset(strFileName);
 9             if (fDataset.GetGeomType() != GeometryType.GeometryPoint) return;
10             HotMapContruct_Exchange_Info info = new HotMapContruct_Exchange_Info();
11             info.InputFeatureDataset = fDataset;
12             //具体分析
13             info.BUseWeightFiled = true;
14             info.WeightFeildName = "GDP";//根据数据的权重字段进行设置
15             info.Radius = 20;
16             info.BCreateFeatureDataset = false;
17             info.DeviceWidth = 2000;
18             info.DefualtWeightValue = 50;
19             info.OutRasterType = "GTIFF";
20             info.DeviceWidth = 1000;
21             info.CellSize = fDataset.GetExtent().GetWidth() / info.CellSize;
22             info.OutRasterFilePath = @"D:\temp\省会城市热力图测试.tiff";
23             #endregion
24 
25             //2、算法执行
26             PIE.CommonAlgo.HotMapContructAlgo alog = new HotMapContructAlgo();
27             alog.Params = info;
28             alog.Execute();
29 
30             //3、结果显示
31             ILayer layer = LayerFactory.CreateDefaultLayer(info.OutRasterFilePath);
32             if (layer == null)
33             {
34                 MessageBox.Show("执行失败");
35                 return;
36             }
37             m_HookHelper.FocusMap.AddLayer(layer);     m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
38             (fDataset as IDisposable).Dispose();//释放内存
39             fDataset = null;
40         }
View Code

2.4. 示例截图

  

原文地址:https://www.cnblogs.com/PIESat/p/10150607.html