2014-10-17 110 views
0

我希望你能帮我解决我的下列问题。因为天我修补它,但它不会运行...自动刷新Google地图标记

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

接下来我想解决的是从地图中自动约40分钟后删除标记。为此,我在我的数据库上创建了一个单独的表格,该表格用主表格中的标记信息填充。这工作到目前为止,我解决了它与一个PHP脚本和cron工作。然后主表中的条目将被删除。让我疯狂的是在地图上40分钟后删除标记。我尝试了几件事,从创建具有“去除表格”数据的数组,我使用Google Maps API的setMap函数进行了尝试,但我仍然处于行动之中。

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

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

的主和的“删除表”包含以下字段: 号码,城市,邮政编码,街道,streetnumber,coordinates_lat,coordinates_lng,时间,日期

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

问候, 斯特凡

+1

我有点困惑。您是否希望地图自动刷新而无需重新加载页面?或者你是否在说,即使刷新页面,您在旧位置上看到标记? – 2014-10-17 17:48:48

+0

当我刷新页面时,一切都很好。但我不想一直重新加载整个页面。当然,将它放入div或iframe中可以更新,但我认为当我可以添加标记而无需重新加载时,我也可以在不刷新的情况下重新加载它。当没有别的办法的时候,没关系,但我认为围绕“setMap”构建一个建筑可以以优雅的方式解决它......但这只是一个念头! – 2014-10-17 22:01:26

回答

1

存储在一个全局变量的标记/函数外,那么在你的函数执行以下操作:

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

然后分配新的标记。

+0

这是一个好主意!但是当我有更多的标记(例如5)时,我只删除一个标记?使用此解决方案,所有现有的标记都将被删除(我想要删除的标记以及另外4个已存在的标记),并且只在我的实际位置设置一个新标记。其他“老”四个人仍然在数据库中,但不会再出现在地图上...玩一下,也许你们中的一个人有另一个冲动... – 2014-10-18 16:37:55

+0

好吧,我终于解决了它!把它放到一个数组中并且处理它是关键......谢谢大家! – 2014-10-19 21:16:50