首页 / 浏览问题 / 组件GIS / 问题详情
iObjects.Java如何用通过检索得到的数据再进行一次检索
273EXP 2025年06月23日

目前使用iObjects.Java,通过使用GeoLineM对点矢量矢量数据集进行空间检索,检索到了一定数量的公交车站点数据

Recordset recordset = datasetVector.query(geoLineM_all, 5, CursorType.STATIC);
接下来我想使用这些检索到的点对周围的另一个点矢量数据集进行300m,500m,800m和1000m内的检索,先从300m开始,如果检索不到再循序渐进,如果检索到了就停止

但如果使用GeoPoint检索就得一个个检索,关闭recordset会很麻烦,请问有没有能够同时使用复数点进行检索,然后统一给他们设置缓冲距离的功能?

1个回答

将第一次检索的点的记录集做一个缓冲区查询,然后将缓冲区结果数据集和另一个点做空间查询,查询是否相交
1,281EXP 2025年06月23日

缓冲区查询似乎就是我代码里的

datasetVector.query(geoLineM_all, 5, CursorType.STATIC);

这个得到的就是Recordset,请问能直接使用Recordset给DatasetVector做缓冲查询吗

目前我只能使用

Recordset recordset_300 = datasetVector.query(geoPoint, 300, CursorType.STATIC);
if(recordset_300.getRecordCount() > 0){
    //to do something
}
else{    
   Recordset recordset_500 = datasetVector.query(geoPoint, 500, CursorType.STATIC);
    if(recordset_500.getRecordCount() > 0){
       //to do something 
   }
}

这种方式去对前面用GeoLineM+缓冲范围检索到的每个点去检索,但这种检索不仅检索次数过多,每次用完都还要关闭对应的Recordset,所以想问问有没有一次性使用这些点进行一次指定缓冲区范围的检索方法,这样的话只要300m,500m,800m和1000m最多检索4次就好了

...