SuperMap iObjects .NET 之快速实现三维场景热力图

作者:贤

一. 介绍

  SuperMap iObjects .NET 是基于 Microsoft 的 .NET 技术开发的一款 SDK 产品,该篇主要说明如何基于 SuperMap iObjects .NET 组件如何快速在三维场景中实现热力图效果。

  话不多说,先看效果,如下图所示效果满足您的需求,请详细阅读以下内容;若该三维场景热力图效果无法满足您的当前需求,可在此篇评论您的需求以及此示例的改进建议。

SuperMap iObjects .NET 之快速实现三维场景热力图.gif

二. 开发环境

软件版本下载地址说明
SuperMap iObjects .NET11.2 及以上版本http://support.supermap.com.cn/DownloadCenter/ProductPlatform.aspx建议参考 SuperMap iObjects .NET 组件包中的帮助文档进行环境和许可配置
Visual Studio2022 及以上版本https://visualstudio.microsoft.com/zh-hans/SuperMap iObjects .NET 从 10.2.0 版本开始只提供 64 位组件包,Visual Studio 2022 开始支持在工具箱中添加 SuperMap iObjects .NET 64 位 UI 控件

三. 核心接口

  SuperMap iObjects .NET 组件提供了 TrackingLayer3D.Add 接口用于在三维场景跟踪图层添加点集合并以热力图的方式显示。

3.1 接口描述

// TrackingLayer3D 类的 Add 接口

public int Add(
	List<Geometry> geoList,
	GeoStyle3D geoStyle3D,
	bool value,
	HeatMapInfo info,
	string tag
)

3.2 接口参数说明

参数类型描述
geoListList<Geometry>点集合
geoStyle3DGeoStyle3D点的三维样式
valuebool是否以热力图方式显示,true表示以热力图方式显示,false以点的方式显示
infoHeatMapInfo热力图信息
tagString热力图标签

3.3 热力图类 (HeatMapInfo)

参数类型描述
BoundsRectangle2D点集合的范围
Intensiondouble强度值
PointPixelint热力图像素大小

四. 代码实现

// 获取三维点数据集合
List<Geometry> geometries = new List<Geometry>();
Datasource datasource = workspace.Datasources.Open(datasourceConnectionInfo);
DatasetVector datasetVector = (DatasetVector)datasource.Datasets["NewPoint3D"];
Recordset recordset = datasetVector.GetRecordset(false, CursorType.Static);
recordset.MoveFirst();
while (!recordset.IsEOF)
{
    Geometry3D geometry = (Geometry3D)recordset.GetGeometry();
    geometries.Add(geometry);
    recordset.MoveNext();
}
recordset.Close();
recordset.Dispose();

// 构建热力图类,设置热力图显示效果参数
HeatMapInfo heatMapInfo = new HeatMapInfo
{
    Bounds = datasetVector.Bounds,
    Intension = 2,
    PointPixel = 100
};

// 将三维点集合添加到跟踪图层并以热力图显示
sceneControl.Scene.TrackingLayer.Add(geometries, new GeoStyle3D(), true, heatMapInfo, "heatmap3d");

五. 总结

  基于 SuperMap iObjects .NET 组件实现三维场景热力图,若通过上述教程学习自行实现时依然存在逻辑不清晰的情况,建议可以参考示例源码 SceneHeatMapDemo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值