首页 百科知识 通过位置查询地图对象

通过位置查询地图对象

时间:2022-06-19 百科知识 版权反馈
【摘要】:四、通过位置查询地图对象MapBasic提供了按指定位置来查询地图对象的函数,如SearchPoint()和SearchRect(),并可以通过SearchInfo()函数获取查询结果信息。该函数返回一整数,表示被找到图形对象的数目。点查询允许一定的搜索范围,即使用户没有点击到图形对象的确切位置,离选择位置最近的点或线也会被包含到选择结果中。MapBasic允许用户通过鼠标定位进行点查询。

四、通过位置查询地图对象

MapBasic提供了按指定位置来查询地图对象的函数,如SearchPoint()和SearchRect(),并可以通过SearchInfo()函数获取查询结果信息。

1.点查询

MapBasic通过SearchPoint()实现点查询功能,类似于GIS软件的点查询工具(在地图上单击,则选中鼠标所在的图形对象)。该函数的语法形式为:

SearchPoint(map_window_id,x,y)其中,map_window_id为地图窗口的ID,x和y指定查询位置的坐标。该函数返回一整数,表示被找到图形对象的数目。

该函数并不选择对象,也不影响当前的选择集合,而是在内存中建立一个对象列表。在调用SearchPoint()函数后,需要调用SearchInfo()函数来处理查询结果。

点查询允许一定的搜索范围,即使用户没有点击到图形对象的确切位置,离选择位置最近的点或线也会被包含到选择结果中。

MapBasic允许用户通过鼠标定位进行点查询。首先使用Create ButtonPad语句或Alter ButtonPad语句创建一工具按钮,使用DM_CUSTOM_POINT作为该按钮的绘制模式,在按钮的处理过程中调用CommandInfo()函数获取鼠标单击的x、y坐标,然后调用SearchPoint()实现点查询。

2.矩形查询

SearchRect()函数可以在指定的矩形区域中查询地图对象。该函数的语法形式为: SearchRect(map_window_id,x1,y1,x2,y2)

其中,map_window_id为地图窗口的ID,x1和y1指定矩形一个角的坐标,x2和y2指定矩形另一个对角的坐标。该函数返回一个整数,表示被找到图形对象的数目。

如果图形对象的中心落在指定的矩形内,则选择结果包含该对象。

MapBasic允许用户通过鼠标选择矩形区域进行查询。首先使用Create ButtonPad语句或Alter ButtonPad语句创建一工具按钮,使用DM_CUSTOM_RECT作为该按钮的绘制模式,在按钮的处理过程中调用CommandInfo()函数获取鼠标单击处的x、y坐标,然后调用SearchRect()实现矩形查询。

3.查询结果

SearchPoint()和SearchRect()函数在内存中建立一个对象列表后,需要调用SearchInfo()函数查询对象列表,获取查询结果信息。该函数的语法形式为:

SearchInfo(sequence_number,attribute)其中,sequence_number为一整数值,取值为1到SearchPoint()或SearchRect()函数的返回值。如果sequence_number大于找到的对象的数目,则函数返回一个ERR_FCN_ARG_RANGE错误信息。attribute为一整型属性代码(SEARCH_INFO_TABLE或SEARCH_INFO_ROW),指定函数返回的内容。

如果attribute参数为SEARCH_INFO_TABLE,则函数返回一包含该对象表名的字符串。如果该对象属于装饰图层,则字符串的形式为"CosmeticN",N为大于或等于1的数字。如果attribute参数为SEARCH_INFO_ROW,则函数返回一整数值,对应于该对象的行号rowID,利用rowID,可在Fetch语句或Select语句的Where子句中使用,进行定位或查询。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈