你们最近一直在用谷歌地图帮助解决我的一些问题,谢谢你们。
我几乎完成了这个 - 只剩下一个问题。当我在地图上放置第一个标记时,它会捕捉到最近的街道(这很好!)但是当我将第一个标记拖到另一个地方时,方向突然混乱了。并且标记得到混合。
您可以在http://dev.korebogen.dk/gmap/上查看示例
我需要使移动第一个标记(仍在捕捉)成为可能,当我放置第二个标记时,方向首先加载。但为了使第一个标记再次捕捉,我必须加载方向。
我希望你们中的一些人有一个解决方案。提前致谢。
你们最近一直在用谷歌地图帮助解决我的一些问题,谢谢你们。
我几乎完成了这个 - 只剩下一个问题。当我在地图上放置第一个标记时,它会捕捉到最近的街道(这很好!)但是当我将第一个标记拖到另一个地方时,方向突然混乱了。并且标记得到混合。
您可以在http://dev.korebogen.dk/gmap/上查看示例
我需要使移动第一个标记(仍在捕捉)成为可能,当我放置第二个标记时,方向首先加载。但为了使第一个标记再次捕捉,我必须加载方向。
我希望你们中的一些人有一个解决方案。提前致谢。
Blackpool Community Church Javascript Team 有一个很好的例子(直接链接到第四个例子)。也可以查看他们的其他示例。
(免责声明:我不隶属于他们,但从他们的例子中学到了很多关于 GMaps 的知识)
编辑:我怀疑地图事件有点像这样触发(伪代码,对于真实事件名称等,请查看 GMaps 文档):
我的建议是:在 red-marker 和 marker-A dragstart 函数中,设置一些标志“拖动标记”,在 dragend 函数中重置它;在设置标记 B 函数中,仅当我们当前没有拖动某些东西时才设置标记(未设置标志)。
我之前给你的代码监听了前两次点击,并为每次点击添加了一个标记。问题是,当您拖动第一个标记时,它会再次调用“单击”事件 - 从而在同一位置添加另一个标记。
幸运的是,click 事件让您知道是否单击了叠加层。因此,如果覆盖为空,则仅执行添加新标记的代码。请注意,叠加不是布尔值。
var listener = GEvent.addListener(map, "click", function(overlay, latlng) {
if (overlay == null) {
// code to add new marker
}
});