沒有地圖重新加載事件。當resize事件來自窗口大小調整時,resize事件至多會重新計算地圖邊界並重新投影現有的要素(標記,折線,多邊形)。特別是對於這種情況,我不認爲手動觸發resize事件會有任何影響。第二,你說你有兩個json文件,但是你的代碼建議你在內存中已經有兩個json對象(意思是你不需要執行附加請求來檢索data2的值)。答案的其餘部分將假設。
如果你原來的標誌物收集從「數據」,這是經緯度對的集合來了,你要替換爲「DATA2」的內容標記的過程將是:
1.-推標記爲對象在那裏你可以找到它們的
var markers=[];
for(onemarker in data) {
var newmarker=new google.maps.Marker({map: map, position: new google.maps.LatLng({onemarker.lat, onemarker.lng}) });
markers.push(newmarker);
}
2:當你想更換標誌,首先清除標記陣列
while(markers.length) {
var oldmarker=markers.pop();
oldmarker.setMap(null);
};
3.-從DATA2對象
for(onemarker in data2) {
var newmarker=new google.maps.Marker({map: map, position: new google.maps.LatLng({onemarker.lat, onemarker.lng}) });
markers.push(newmarker);
}
填充標記陣列與所述數據對於這種標記物,作爲用於常規功能,有在物體與底層數據之間沒有瞬時結合。這與新的google.maps.Data()圖層略有不同,您可以跳過該迭代併爲其提供一個geoJSON數組。您仍然需要有一個對象來存儲當前的標記,否則當您想要刪除它們時,您將無法訪問它們。
不錯,工作很棒@amenadiel – maudulus