如何通过单击绘制多条折线

How to draw multiple polylines by clicking?

本文关键字:折线 绘制 何通过 单击      更新时间:2023-09-26

我一直在寻找解决方案,但所有这些都是如何从 json 文件等绘制折线。 主要问题是每次单击"新折线"按钮时,如何获得创建新折线并将旧折线存储在数组中的功能?其次,单击"新建折线"按钮后如何离开折线并在地图上绘制新折线,并且仅在单击右键时才清理和恢复?更好的方法是将折线存储在类之外,或者为此创建一个新的单独类?您是否必须以不同的方式处理这个问题?

糟糕的演示,但强调我希望的意思:jsfiddle

数组已移动到全局范围,但无法在最后的折线上设置映射,只能通过 clearOverlays 函数工作。现在其他按钮会出现并发症。我创建了额外的全局对象 newPoly,但不知道好主意是否可能更好地从 myPolyline 获取对象?在其他方面恢复的情况下,无法在存储在数组折线中的地图上设置。

要保存您制作的折线,请创建另一个全局变量来存储折线并将它们推入,同时在数组中的最后一条折线上设置Map(null)。您不能将创建的折线存储在同一个对象中,因为每次都要创建一个新折线。所以移动:

this.polyLines = [];
离开类,

进入全局范围,或进入另一个类,可以将标记数组保留在那里,因为它是该折线实例的本地。

这也应该有所帮助 - https://developers.google.com/maps/documentation/javascript/overlays#OverlaysOverview