谷歌地图 API v3:在点击折线事件上的两个现有点之间的折线上添加点
如何在单击折线事件上的两个现有点之间的折线上添加点? 谢谢你!
How can I add point on a polyline between two existing points on a click polyline event?
Thank you!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您只是谈论只有 2 个点的
Polyline
,则可以使用LatLngBounds
包含折线
。不过,Google 地图 api v3 并未实现Polyline.getBounds()
函数。因此,您可以扩展Polyline
类以包含getBounds
函数:只有 2 个点的线上的
Polyline.getBounds()
将包含该区域包括这一行。该边界的中心应该是您的线的精确中心。如果Polyline
包含超过2个点,则中心不会落在单击的线的中心,而是包含所有点的边界的中心。如果您想通过此功能使用多段折线,则需要更多的数学计算来计算单击了哪一段。这是一个使用 2 点折线的小示例:
If you are just talking about a
Polyline
with only 2 points, you could use the center of aLatLngBounds
containing thePolyline
. Google maps api v3 doesn't implement thePolyline.getBounds()
function, though. So you can extend thePolyline
class to include agetBounds
function:Polyline.getBounds()
on a line with only 2 points will contain the area to include this line. The center of this bounds should be the exact center of your line. If thePolyline
includes more than 2 points, the center will not fall on the center of the line clicked, but the center of the bounds that includes all points. If you want to use mutli-segment Polylines with this function, it will take more math to calculate which segment was clicked.Here is a small example using a 2 point
Polyline
:您只需要计算方位角和 50% 的距离 - 在那里添加垂直点。
上面的例子是边界的中心 - 这是相同的。
您可能需要一个临时边界对象,该对象将边界扩展到前一个和下一个顶点 latlang。
you just need to calculate the bearing and 50% of the distance - add the verticle there.
above example is the center of the boundary - which is identical.
you may need a temporary boundary object which extends boundaries by the previous and next verticle latlang.