高德地图API--编辑

一、前言

在做地图线面编辑的时候,出现了一些问题。

有版本问题,升级版本后 API 调整的问题。这里做个记录。

二、版本1.14 编辑

在 1.14 版本中,线和面的编辑是用的同一个工具类:AMap.PolyEditor 插件

具体实现是:

polylineEditor = new AMap.PolyEditor(mapObj,polyline); 
polylineEditor.open(); 

// 其他操作后关闭
polylineEditor.close();

这样就可以开启编辑。

但是在添加这个功能后,一直会报错:Cannot read property 'push' of undefined。

这个报错是在添加 polyline 到地图的时候。一直找不到问题。

三、版本 2.0 编辑

由于有上面的问题,就改用了 2.0 版本的 API。

这里做了下升级:

this.editorObj = new AMap.PolylineEditor(this.baseMap)
this.editorObj.setTarget(this.flowRiver)
this.editorObj.open()
this.editorObj.close()

这里要注意:2.0 版本把  AMap.PolygonEditor 和 AMap.PolylineEditor 分开了。使用哪一个引入哪一个。

四、升级问题

升级后编辑是解决了,但是出现了兼容性问题。

1、地图事件绑定方式改变

原先是通过 event.addListener 进行绑定的。

在 2.0 版本中这个 API 取消。所以进行修改一些代码

原文地址:https://www.cnblogs.com/zhurong/p/13963822.html