首页 / 浏览问题 / 移动GIS / 问题详情
Android如何获取跟踪图层的全部几何对象
45EXP 2022年03月14日

我只能取到跟踪图层,这个线段最后一段2个端点的几何对象。我如何取到这个整个线段然后转成几何类对象。

String lineTag = "line";
TrackingLayer trackingLayer = m_mapControl.getMap().getTrackingLayer();
int id = trackingLayer.GetEvent(lineTag);
split_line = trackingLayer.get(id);

这是现在取得代码

1个回答

你好,跟您确认一下,"line"这个对象是构建的geoline添加到跟踪图层的吗?
2,842EXP 2022年03月14日

是添加到跟踪图层的

如果这个“line”是简单线对像,那么我这个代码是正常能够获取到整个线对像的,ps:我测试用的10.2.1版本。

int id = trackingLayer.GetEvent("line");
GeoLine geo = (GeoLine) trackingLayer.get(id);

如果要取线对像的节点数,则参考

GeoLine geo = (GeoLine) trackingLayer.get(id);
System.out.println(geo.getPart(0).getCount()+"个节点");
可是我需要做的是在跟踪图层上取到这个有多个节点线对象,我想用这个不规则的的线对象去分割这个面对象。现在一条简单有2个节点的线可以分割成功的。

还有就是删除一个GeoRegion面的几何对象需要用什么方法

1.上述代码+10.2.1IMB是能够获取到多节点的线的,节点数打出来与我实际绘制的节点一直都是5个节点的线,如果结果不一致建议用10.2.1版本

线对象构造:

Random ran = new Random();
Point2Ds point2Ds = new Point2Ds();
point2Ds.add(new Point2D((ran.nextInt(180)),( ran.nextInt(90))));
point2Ds.add(new Point2D((ran.nextInt(180)),( ran.nextInt(90))));
point2Ds.add(new Point2D((ran.nextInt(180)),( ran.nextInt(90))));
point2Ds.add(new Point2D((ran.nextInt(180)),( ran.nextInt(90))));
point2Ds.add(new Point2D((ran.nextInt(180)),( ran.nextInt(90))));
GeoLine geoLine=new GeoLine(point2Ds);
mapControl.getMap().getTrackingLayer().add(geoLine,"line");

2."删除一个GeoRegion面的几何对象" 这个问题,你想问怎么删除面对像是吗?面是数据集里面的还是跟踪图层呢?前者用Recordset记录集删——delete() ,后者用trackinglayer跟踪图层删——remove(int index) 

就是Geometrist.splitRegion分割后得到的GeoRegion,那应该是用记录集删除吧
splitRegion分割的结果面,本身就是没有存下来的,不用删,分割完是往两个目标面里赋值的,只是存在内存里面的,如果你不进行存储,程序停掉,自动就没了
好的谢谢,我先看一看 不懂在问您
...