先,我们开发过程中会执行各种查询,查询到具体要素后,需要将其高亮显示,突出要素:如下所示
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 查找到的字段赋值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)