如何实现查询结果在SuperMap Control控件中高亮显示

如何实现查询结果在SuperMap Control控件中高亮显示,第1张

先,我们开发过程中会执行各种查询,查询到具体要素后,需要将其高亮显示,突出要素:如下所示

objRecordset = objDatasetVectorQuery(txtExpressionText, false, null, "");//执行具体查询,将查询的要素记录存储的记录集中。

objSelection = SuperMap1selection;//将地图窗口中的选中的对象赋给选择集对象,

objSelectionFromRecordset(objRecordset);//将选中的记录集高亮显示

前言

在GIS项目中,由于地理数据的获取方式不同,在数据处理过程中,经常会遇到数据的坐标不同的问题。此时,为了方便不同不同投影坐标系数据之间的处理、分析、显示等 *** 作,可以通过 SuperMap 提供的投影转换功能,对数据进行投影变换。SuperMap iDesktop NET 提供了三种投影转换方式,即数据集投影转换、批量投影转换、坐标点转换。用户可根据自身需求,选择不同的方式进行投影转换。

数据集投影转换

SuperMap iDesktop打开数据后,可以通过数据集的属性查看每个数据集的坐标信息,如果数据集是非平面无投影坐标系,可以通过投影转换对数据集进行坐标转换。单个数据集进行投影转换,矢量数据转换后的结果数据可另存为一个数据集,也可直接转换源数据集的投影;栅格、影像或模型数据集转换投影后,结果数据集需另存为新的数据集。

*** 作步骤:

    在工作空间管理器中选择需要转换投影的数据集,在“开始”选项卡的“数据处理”组中,单击“投影转换”下拉按钮,选择“数据集投影转换”项,d出“数据集投影转换”对话框,如下图所示:

批量投影转换

批量投影转换是指同时对数据源下的多个数据集进行投影转换,转换后指定数据集的坐标与目标数据源的坐标系一致。

*** 作步骤:

    在“开始”选项卡的“数据处理”组中,单击“投影转换”下拉按钮,选择“批量投影转换”,或在工作空间管理器中选择数据源,单击右键,在右键菜单中选择“批量投影转换”,d出“批量投影转换”对话框,如下图所示:

坐标点转换

若用户需将某一点的坐标转换为另一坐标系下的坐标,可通过“坐标点转换”功能进行转换,得到该点在其他坐标系下的坐标值,坐标点转换可以在两个地理坐标系下进行坐标点的转换,也可以在两个投影坐标系下进行坐标点的转换,也可以在地理坐标系与投影坐标系之间进行坐标点的转换。

*** 作步骤

    在“开始”选项卡的“数据处理”组中,单击“投影转换”下拉按钮,选择“坐标点转换”按钮,d出“坐标点转换”对话框如下:

结语

上述介绍的三种投影转换的方式,都是需要源数据的坐标系有实际地理意义,不能是平面无头影坐标系。如果是平面无头影坐标系的数据,可以通过地图配准来实现坐标转换。

如果是DatasetVectorQuery()的话,就是DatasetVectorQuery(QueryParameter);

public void QueryParameterSample(Workspace workspace)

{

// 获取数据源中名为 World 的矢量数据集

DatasetVector dataset_world = workspaceDatasources[0]Datasets["World"] as DatasetVector;

// 获得空间查询中的搜索对象

Recordset srcRecordset = dataset_worldQuery("SmID=100",CursorTypeStatic);

// 设置查询参数

QueryParameter parameter = new QueryParameter();

parameterAttributeFilter = "SmID < 100";

parameterCursorType = CursorTypeStatic;

parameterSpatialQueryMode = SpatialQueryModeDisjoint;

parameterResultFields = new String[] { "SmID", "Color_Map", "Pop_1994" };

parameterSpatialQueryObject = srcRecordset;

// 进行查询

Recordset recordset = dataset_worldQuery(parameter);

// 以 dataset_world 为模板创建数据集

DatasetVector dataset_result = (DatasetVector) workspaceDatasources[0]DatasetsCreateFromTemplate(workspaceDatasources[0]DatasetsGetAvailableDatasetName("Results"), dataset_world);

// 将空间查询结果追加到新建的数据集中

dataset_resultAppend(recordset);

// 依次关闭所有对象

srcRecordsetDispose();

recordsetDispose();

}

以上就是关于如何实现查询结果在SuperMap Control控件中高亮显示全部的内容,包括:如何实现查询结果在SuperMap Control控件中高亮显示、SuperMap地图系列:数据投影转换、supermap 如何给query 查找到的字段赋值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9332059.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存