2017-02-15 249 views
-2

我有多個緯度。在谷歌地圖上繪製多個緯度和經度

var latlngs = [ 
    {lat:25.774252,lng:-80.190262}, 
    {lat:18.466465,lng:-66.118292}, 
    {lat:32.321384,lng:-64.757370}, 
    {lat:25.774252,lng:-80.190262}, 
    ]; 

實際上,它是從數據庫中使用Ajax響應檢索:

$.ajax({ 
    url: "getLatlng.php", 
    type: 'post', 
    dataType: 'json', 
    success: function(response) { 
    for (i = 0; i < response.length; i++) { 
     // what should be the code here for plotting them on google maps 
    } 
    }, 
    error: function(xhr){ 
    console.log(xhr); 
    } 
}); 

我希望他們在谷歌地圖繪製,每次我改變從數據庫的經緯度之一,標誌也應通過使用setInterval更改而不重新加載頁面。這實際上是用於GPS追蹤。我需要幫助。 任何幫助表示讚賞。

+2

每次從服務器獲取新信息時,您只需設置標記爲null .setM ap(null)',然後在地圖上再次設置'.setMap()'。如何做到這一點在這裏被描述爲超過100倍,而谷歌文檔對於這一點非常清楚並且很好。 –

+0

我建議查看[Documentation](https://developers.google.com/maps/documentation/javascript/markers)。你需要做的是清除地圖上的所有標記,然後每次再添加一次。 – George

+0

你可以有一個在谷歌地圖上繪製多個latlng的示例嗎? – JSmith

回答

1
var marker=[];  

$.ajax({ 
     url: "getLatlng.php", 
     type: 'post', 
     dataType: 'json', 
     success: function(response) { 
     for (i = 0; i < response.length; i++) { 
       marker = new google.maps.Marker({ 
       position: new google.maps.LatLng(lat, long), 
       map: map, 
       address: "Something here", 
       icon: 'http://maps.google.com/mapfiles/ms/icons/red-dot.png' 
      }); 
       google.maps.event.addListener(marker, 'click', function() { 
        // Update Info Window Here 
      }); 
     } 
     }, 
     error: function(xhr){ 
     console.log(xhr); 
     } 
    }); 

希望你的AJAX調用之前已初始化的地圖和標記 並更新你必須首先從地圖

這裏刪除所有標記標記是函數刪除標記

function DeleteMarkers() { 
    for (var i = 0; i < marker.length; i++) { 
     marker[i].setMap(null); 
    } 
    marker = []; 
}; 

只需在Ajax調用之前調用函數

+0

是的,謝謝。但我怎麼能再次setMap(null)和setMap(map)?因此標記也會更新而不重新加載頁面 – JSmith

+0

標記變量在哪裏使用?我認爲,它沒有使用,因爲你使用'標記'變量繪製谷歌地圖而不是標記 – JSmith

+0

對不起,現在更新 –

相關問題