首页 / 浏览问题 / 移动GIS / 问题详情
安卓绘制多个相同区域跟踪图层叠加问题
40EXP 2022年05月06日
您好,现在有一个问题,当我在地图同一个区域绘制了多个相同大小和形状的跟踪图层,也就是这几个跟踪图层重叠在一起,但是每个图层设置了不同的tag,这时候我点击这片区域,请问如何拿到点击的这个区域的所有的图层的tag呢?

1个回答

您好,您可以通过绘制区域来选择tag,使用SelectionMode,当对象与选择区域的空间位置关系一样时,选择模式不同,对象是否被选中也会不同。 SuperMap支持多种选择方式,如点选,圆选,框选等等,SelectionMode 支持除点选外的所有选择方式。
3,355EXP 2022年05月06日
您好,设置了SelectionMode之后,通过什么方式获取跟踪图层的tag呢?
一张地图只有一个跟踪图层,您是想要获取跟踪图层上面的几何对象的话,可以通过trackinglayer.getTag(int i)来获取那些对象的tag
对,说错了,要获取同一片重叠区域的所有几何对象的tag,trackinglayer.getTag(int i)需要index参数,现在是通过点击地图,无法获取index参数,但是现在我使用hitTest方法可以获取到一个id,有多个几何对象重叠的话无法获取多个几何对象的id,要如何处理呢?
您需要先设置mapcontrol.setAction(Action.SELECT_BY_RECTANGLE)设置选择为框选,

再用mapControl.setSelectionMode(SelectionMode.CONTAIN_OBJECT)设置为完全包含的对象,

然后再用mapcontrol.addGeometrySelectedListener(new GeometrySelectedListener(){...}),

里面有GeometrySelectedEvent,可以调用GeometrySelectedEvent.getGeomotryID()方法返回选中的几何对象的ID。
您好,这个方式不能实现单击点选啊,我想要的效果是单击地图跟踪图层的几何对象,这时候如何得到该点击区域的所有集合对象的id呢
在跟踪图层上使用trackinglayer.hitTest()方法,而不能在跟踪图层上使用map.setAction方法,您可以获取拾取的点坐标,接着在代码中自动画矩形框选,指定矩形的大小,就可以了
...