首页 / 浏览问题 / 移动GIS / 问题详情
GetFeaturesByGeometryService
81EXP 2019年08月30日
  String[] dtnames = {dataSourece +":"+ dataSet};
       GetFeaturesByGeometryParameters params = new GetFeaturesByGeometryParameters();
       params.datasetNames = dtnames;
       geometry = new Geometry();
    /*   points = new Point3D[point3DList.size()];
       for (int i = 0; i < point3DList.size(); i++) {
           points[i] = point3DList.get(i);
       }*/
       point2Ds = new Point2D[point2DList.size()];
       for (int i = 0; i < point2DList.size(); i++) {
           point2Ds[i] = point2DList.get(i);
       }
//       geometry(points,GeometryType.REGION3D);
       geometry.fromPoint2Ds(point2Ds,GeometryType.REGION);
       params.geometry = geometry;
       params.geometry.type = GeometryType.REGION;
       params.spatialQueryMode = SpatialQueryMode.INTERSECT;
       // 与服务器交互
       GetFeaturesByGeometryService service = new GetFeaturesByGeometryService(queryB12);
       MyGetFeaturesEventListener listener = new MyGetFeaturesEventListener();
       service.process(params, listener);

GetFeaturesByGeometryService这类的查询,Geometry参数只能传入Point2D的参数吗,二维的点怎么去跟模型数据做INTERSECT;而且params.geometry.type可以有那么多种几何类型,为什么Geometry只能传二维的点呢,有没有geometry的points是三维点的例子,谢谢

1个回答

您好,您是想构建三维面对象吗?直接用GeoRegion3D的构造方法就可以了。请问一些您那边使用的是哪个demo呢?
9,137EXP 2019年08月30日
您好,我这边没有使用demo 是自己参考属性查询在写这个空间查询,然后一直查询不到数据。

我构建了GeoRegion3D之后,怎么把它作为params.geometry的参数,去实现这个空间查询。
您那边具体有什么需求呢?移动端是没有GetFeaturesByGeometryService这个接口的,所有想问一下您那边具体使用的是什么产品

是限高分析,通过控规盒子的高度,去限定模型的高度。找到超出控规盒子高度的那几个小模型。

这边用的是9.1.1版本的全套超图产品,开发是用的IMobile。

场景中有两个模型数据,一个是控规盒子,一个是模型。求模型超出控规盒子的部分,之前其他端是用空间查询去做,但是安卓这边API有点不清晰。

超图那边没有GetFeaturesByGeometryService这个接口吗?但是为什么引用包里面有这个接口呢
这边有这个功能需求,您那边可以提供一个可行的解决方案吗?谢谢
您好,你要确定您使用的是什么产品?产品之间的接口是不能互相使用的,如果你想实现这种功能,您可以在桌面软件中对模型数据提取属性---提取顶部高程。将模型的顶部高程保存到属性表中,这样在移动端使用的时候可以通过模型的顶部高程和您的控高盒子进行比较来判断。

对,限高分析是还可以通过这个方式来实现,但是做退让分析的时候,还是需要用到空间查询。

我这边是一套9.1.1的,imobile for android,使用的都是9.1.1的包,工程的基础配置是根据你们9.1.1版本demo来的

您能详细说一下退让分析具体的操作方式吗?您发的代码明显不是Java的语法,我不知道您那边使用的是什么产品
这是android的代码啊,是Java的语法。移动端没有实现空间查询的接口吗?

退让和限高分析一样,都是通过对外面那个控规盒子和里面的模型进行空间求交,不同的是,限高是对高度分析,而退让是对建筑物的范围进行分析。

imobile for android里面有类似空间查询的接口么,或者有相关示例代码吗,谢谢。
您好,不好意思,目前移动端不支持三维空间查询的,只支持二维的空间查询哈。退让分析您可以获取模型的投影面,然后使用缓冲区分析,然后用二维的空间查询方式来判断
...