在谷歌地图上绘制多个纬度和经度

时间:2017-02-15 14:43:19

标签: javascript php jquery google-maps

我有多个latlng。

  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);
  }
});

我希望他们在谷歌地图上绘图,每当我从数据库中更改其中一个latlng时,也应该更改标记而不使用setInterval重新加载页面。这实际上是针对gps跟踪的。我需要帮助。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分: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 Call之前调用函数