我正在寻找一个解决方案,但所有都是如何从json文件等绘制折线。主要问题是如何获得创建新折线的功能,并在每次单击按钮“New Polyline”时将其存储在数组中?其次如何在单击“新建折线”按钮后保留折线并在地图上绘制新图像并仅在单击右按钮时清理并恢复?可能更好的方法是在课外存储Polylines,或为此创建一个新的单独类?你可能要以不同的方式处理这个问题吗?
糟糕的演示,但突出我的意思,我希望:jsfiddle
数组已移至全局范围,但最后折线上的setMap无法仅通过clearOverlays函数工作。现在其他按钮出现了复杂情况。我创建了额外的全局对象newPoly,但不知道是否好主意可以更好地从myPolyline获取对象?在另一侧恢复的情况下无法在地图上设置存储在数组折线中。
答案 0 :(得分:1)
要保存您制作的折线,请创建另一个全局变量来存储折线并将其推入,同时在数组中的最后一条折线上设置setMap(null)。您无法存储在同一对象中创建的折线,因为您每次都要创建一条新折线。 所以搬家:
this.polyLines = [];
离开类,进入全局范围,或进入另一个类,将标记数组留在那里是很好的,因为那是该折线实例的局部。
这也应该有帮助 - https://developers.google.com/maps/documentation/javascript/overlays#OverlaysOverview