簡體   English   中英

使用Google Maps API v3添加多個標記

[英]Add multiple markers with Google Maps API v3

我有以下功能來添加一個標記,但我想通過點擊地圖添加多個標記。 我用谷歌搜索但我無法得到任何關於如何解決這個問題的直接答案。

function placeMarker(location) {
    if(marker) {
        marker.setPosition(location);
    } else {
        marker = new google.maps.Marker({
            position: location,
            map: gm_map,
            draggable: true
        });
    }
}

我知道我需要使用Array()但我不確切知道如何。 我怎樣才能解決我的問題?

DEMO :刪除因為問題已經解決了。

你需要在placeMarker函數之外使用marker變量嗎? 您的功能不是刪除標記,而是檢查標記變量是否存在並使用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
   });        
}

這是一個例子: http//jsfiddle.net/bryan_weaver/aEyfW/

好的,您需要在地圖上為“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
        });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM