2017-02-15 151 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

对不起,现在更新 –

相关问题