我有以下功能添加一个标记但我想通过点击地图添加多个标记。我用谷歌搜索但我无法得到任何关于如何解决这个问题的直接答案。
function placeMarker(location) {
if(marker) {
marker.setPosition(location);
} else {
marker = new google.maps.Marker({
position: location,
map: gm_map,
draggable: true
});
}
}
我知道我需要使用Array()
,但我不知道具体如何。我怎样才能解决我的问题?
DEMO :已删除,因为问题已解决。
答案 0 :(得分:2)
您是否需要在marker
函数之外使用placeMarker
变量?您的功能不是删除标记,而是检查标记变量是否存在并使用setPosition
功能移动标记。如果要存在多个标记,则需要删除该行。
function placeMarker(location) {
//marker variable will only exist inside this function
var marker = new google.maps.Marker({
position: location,
map: gm_map,
draggable: true
});
}
答案 1 :(得分:1)
好的,你需要为地图上的'click'事件提供一个事件监听器。这需要将当前单击的位置传递给您的placeMarker函数。试试这个(在你初始化你的地图的同一个地方添加这个事件监听器)
google.maps.event.addListener(gm_map, 'click', function(event) {
placeMarker(event.latLng);
});
并修改您的placeMarker函数,因此您不必每次点击都更新一个全局变量标记,而是每次都创建一个新标记:
function placeMarker(location) {
var marker = new google.maps.Marker({
position: location,
map: gm_map,
draggable: true
});
}