IMoblie 画点线面相关问题

0 投票
您好,刚刚看了官方提供的MapEdit这个Demo, 关于手势画,有以下几个问题:

1. MapEdit中画点时,一次只能画一个点(画下一个点时,前一个点消失),求解。 谢谢

2. 画点线面时,如何获取到坐标?

3. 还有自由画线和画多边形时,如何知道坐标?
8月 30, 2017 分类:  541次浏览 | 用户: xiaowu_zhu 才疏学浅 (13 分)

1个回答

0 投票
 
已采纳
(1)绘制完一个对象,点提交,才能继续后一个对象的操作;

(2)手势绘制手指点的哪个位置就是对应位置的坐标,如果要知道坐标在绘制对象,不是通过手势来绘制的。
8月 30, 2017 用户: 王国新 名扬四海 (1,982 分)
采纳于 9月 6, 2017 用户:xiaowu_zhu
您好,我的意思是这样的,我通过手势画多边形,如果Action是CREATEPOLYGON,我可以通过监听事件拿到坐标,但是如果Action是 DRAWPLOYGON, 就只能拿到第一个坐标, 其它的无法拿到坐标, 有没有什么方法,可以拿到这个多边形的坐标呢?

可以用mapcontrol.addGeometryAddedListener(GeometryAddedListener listener)监听得到当前绘制的对象,然后再获取这个对象的所有节点。

我刚看了下api, 添加GeometryAddedListener监听之后并没有看到相关的方法去获取点

先获取到当前绘制的对象mapcontrol.getCurrentGeometry(),然后再获取对象的所有节点。

您好,我添加了代码,但是没有触发,代码如下:

mMapControl.addGeometryAddedListener(new GeometryAddedListener() {
    @Override
    public void geometryAdded(GeometryEvent geometryEvent) {
        String s = mMapControl.getCurrentGeometry().toJson();
        LogUtil.i("面:"+ s);
    }
});

画面:

layers.get("Region@edit").setEditable(true);
mMapControl.setAction(Action.DRAWPLOYGON);
需要通过手势绘制对象,然后提交的时候触发
我已经解决了,在mapControl.setOnTouchListener()中利用mapControl.getCurrent.. 获取
...