首页 / 浏览问题 / 移动GIS / 问题详情
请问下android端怎么查询数据源服务
6EXP 2019年07月31日

这边开发需要进行点击三维场景(在线服务),进行查询展示所点击三维对象的属性,因为三维场景服务是属于影像类型的,不能直接用layer3D.getSelection().toFeature3D()来获取数据,所以这边只能用通过ID 然后用ID去数据服务里面进行查询,但是目前没找到对应的查询方法,已知的QueryService方法,我看了下源码里面,url地址基本是上写死的只支持rest节点后面是maps这种的地图服务,而三维服务地址rest节点后面是realspace,数据服务地址rest节点后面是data,QueryService源码里面进行查询是查询地址是拼接写死的,如下

public void query(ServiceQueryParameter var1, QueryMode var2) {
    if(var1 == null) {
        throw new NullPointerException(" The param is null.");
    } else {
        String var3 = this.mUrl + "/services/" + var1.getQueryServiceName() + "/maps/" + var1.getQueryMapName();
        this.query(var3, var1, var2);
    }
}

所以,我想问下,android端怎么查询数据源服务里面的数据

1个回答

您好,imbibe for Android对于在线数据的查询只能是对地图服务的查询,请问一下你是想查询什么数据的属性信息呢?影像数据本身是没有属性的,如果是模型数据可以通过Layer3DOSGBFile.getAllFieldValueOfLastSelectedObject来获取属性信息。
9,127EXP 2019年07月31日

1.影像数据没有属性这个是指 连ID这种基础属性都没有嘛?
2.模型数据里面,除了ID这种基础属性,长宽高,体积这种属性也可以查询到(只要这个模型数据处制作的时候要设置好对应的属性)?
3.在线服务,除了地图服务外,还有三维场景服务(类似这种http://****/iserver/services/3D-SW/rest/realspace/scenes/GIS_ZRZ),数据服务(类似这种http://****/iserver/services/data-SW/rest/data/datasources/NJ_NLD),我这边想查询的就是这种数据服务(因为我们PC端的同事进行三维场景查询的时候 就是先通过点击获取ID,然后在根据ID去数据服务里面进行查询,然后获取对应的数据)

1.影像数据是没有ID的属性的,只能通过像元的行列号查询出valuer值

2.模型数据集是可以查询出来的,在桌面软件中打开数据集的属性表,里面有的属性都能查询到

3.我们查询在线服务只能查询在线的地图服务
好的 谢谢!

前辈,在吗?我这边加载三维模型数据时遇到个问题 想请教一下,就是在加载一个有十万条数据的模型数据时(三维在线服务)对应的udb数据 一共300多M,

SceneControl().getScene().open(url, layerId);用这个加载的时候 返回的是true,但是加载很缓慢,在加载过程中拖动地图 会很卡(就是已经拖动地图了,但是要隔几秒才会移动),还有就是我不去操作地图,他自己加载加载者 就直接异常退出了,请问下 这是因为数据量过大的原因造成的嘛?如果是 那么android端这边最多支持多大的数据。还是因为制作数据的同事,没有制作正确?
您好,这种情况可能是因为你的模型数据比较复杂造成的,建议您对模型数据进行优化。优化方法:1.移除重复点 2.移除重复面 3.复杂对象打散。这些操作都是在桌面软件idesktop中进行操作
好的,感谢
前辈,打扰了,这边还想请教你一个问题:这边有一张图片,我想加载到三维地图上,就想二维里面 用CallOut类把View对象加载到对应的point上,三维这边有对应的类嘛

您好,您可以构造点对象,然后设置点对象的风格Geostyle3D,并将其添加到跟踪图层上显示:

trackingLayer3D.add()
...