2014-10-17 198 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