• 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. 示例截图

      

  • 相关阅读:
    arcgis中根据坐标文件生成要素类
    论C#及.net缺点及发展
    测绘类投稿指南
    .NET 4.0 Beta2中的BigInteger和Complex类(转)
    沈阳招聘.NET(C#)高级软件工程师
    测树学weibull拟合matlab程序,难者不会,会者不难
    景观生态专用软件
    使用匿名函数在后台线程中设置窗体控件属性 ()转
    matlab如何统计矩阵各元素的出现次数
    科学计算与开发环境
  • 原文地址:https://www.cnblogs.com/PIESat/p/10150607.html
Copyright © 2020-2023  润新知