你们最近一直在用谷歌地图帮助解决我的一些问题,谢谢你。
我差不多完成了这个 - 只留下一个问题。当我将第一个标记放在地图上时,它会捕捉到最近的街道(这很好!)但是当我将第一个标记拖到另一个地方时,方向突然变得混乱。标记混合在一起。
您可以在http://dev.korebogen.dk/gmap/
上看到示例我需要移动第一个标记(仍然是捕捉),当我放置第二个标记时,首先加载方向。但为了使第一个标记再次弹出,我必须加载方向。
我希望你们中的一些人有一个解决方案。提前谢谢。
答案 0 :(得分:5)
布莱克浦社区教会Javascript团队有一个excellent example of exactly this(direct link to the fourth example)。看看他们的其他例子。
(免责声明:我不隶属于他们,但他们从他们的例子中学到了很多关于GMaps的知识)
编辑: 我怀疑地图事件有点像这样(伪代码,真实事件名称等等。检查GMaps文档):
我建议:在red-marker和marker-a dragstart函数中,设置一些标记“拖动标记”,将其重置为dragend函数;在Set marker B功能中,如果我们当前没有拖动某些东西(没有设置标志),则只设置标记。
答案 1 :(得分:2)
我之前给你的代码听了前两次点击,并为每个代码添加了一个标记。问题是当你拖动第一个标记时,它再次调用“点击”事件 - 从而在同一位置添加另一个标记。
幸运的是,click event可让您知道是否点击了叠加层。因此,如果overlay为null,则仅执行添加新标记的代码。 请注意,overlay不是布尔值。
var listener = GEvent.addListener(map, "click", function(overlay, latlng) {
if (overlay == null) {
// code to add new marker
}
});