自动刷新Google地图标记

时间:2014-10-17 17:40:50

标签: javascript mysql google-maps-api-3

我希望你可以帮助我解决以下问题。因为几天我在修补它,但它不会运行......

我正在编写一个基于谷歌地图API的小型网络应用程序,我可以在地图上用修改后的标记符号标记我的实际位置,依此类推。到目前为止一切都很好。我通过HTML5-Geolocation函数接收我的地理位置,并将值写入mysql数据库。在一个单独的函数中(见下文),我读出了这个数据,并在地图上用我修改过的符号设置了标记。

接下来我要解决的是从地图开始大约40分钟后删除标记。为此,我在我的数据库上创建了一个单独的表,该表填充了主表中的标记信息。这个工作到目前为止,我用PHP脚本和cron-job解决了它。然后,主表中的条目将被删除。让我疯狂的是从地图开始40分钟后删除标记。我尝试了几个方面,从使用“to-remove-table”的数据创建数组,我玩了Google Maps API的setMap-function,但我仍然在线。

这是我的代码,我从数据库中读出数据并在地图上设置标记:

function markPolitesse() {

  var infoWindow_spotted = new google.maps.InfoWindow;

  downloadUrl("phpsqlajax_genxml2.php", function(data) {

  var xml = data.responseXML;
  var markers = xml.documentElement.getElementsByTagName("politesse_spotted");

  for (var i = 0; i < markers.length; i++) {
    var number = markers[i].getAttribute("number");
    var city = markers[i].getAttribute("city");
    var zipcode = markers[i].getAttribute("zipcode");
    var street = markers[i].getAttribute("street");
    var type = markers[i].getAttribute("street");
    var point = new google.maps.LatLng(
      parseFloat(markers[i].getAttribute("lat")),
      parseFloat(markers[i].getAttribute("lng")));
    var html = "<b>" + city + "</b> <br/>" + zipcode + "</b> <br/>" + type + "</b> <br/>";    

    var marker = new google.maps.Marker({
        map: map,
        position: point,
        title: number,
        icon: politessenImage
      });

    bindInfoWindow(marker, map, infoWindow_spotted, html);
     }
  });
}

main-和“remove-table”包含以下字段: 号码,城市,邮政编码,街道,街道号码,coordinates_lat,coordinates_lng,时间,日期

我希望你有一种冲动,我会感激...

此致 斯蒂芬

1 个答案:

答案 0 :(得分:1)

将标记存储在函数外部的全局变量中,然后在函数中执行以下操作:

marker.setMap(null);
// set up new marker

然后分配新标记。