一、前言
在做地图线面编辑的时候,出现了一些问题。
有版本问题,升级版本后 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 取消。所以进行修改一些代码