我正在構建使用Google地圖的跟蹤應用程序,因此用戶可以點擊多個標記。該頁面最終會每15分鐘刷新一次以跟上最新的跟蹤數據。不過,我希望即使在頁面刷新後用戶仍然堅持選定的標記,因此如果需要,他們可以跟隨選定的車輛(標記所代表的)。如何在頁面刷新後保持對選定標記的縮放?
我試圖用本地存儲來實現這一點。我可以在存儲器中獲得經緯度,沒有問題,但是當我把它拿出來時,我發現經度已經出現了太多的小數位,所以API不會識別這個位置。
要轉到標記後刷新我的代碼是這樣的:
var centre = {lat: 53.806590, lng: -1.548437};
var centreRefresh = localStorage.getItem("markerPos");
// Draw the map
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 6,
center: centre
});
if (centreRefresh != null && $("#zoomRefresh").is(':checked')) {
map.setZoom(8);
map.setCenter(centreRefresh);
}
而且填補了本地存儲我有這樣的:
// Add Info Window to Marker
marker.addListener('click', function() {
infowindow.open(map, marker);
if ($("#zoomRefresh").is(':checked')) {
markerPos = marker.getPosition();
localStorage.setItem("markerPos", markerPos);
}
map.setZoom(8);
map.setCenter(marker.getPosition());
});
在控制檯的optput從即設置在本地存儲是"(55.823772, -2.8525829999999814)"
和錯誤消息是InvalidValueError: setCenter: not a LatLng or LatLngLiteral: not an Object
有沒有更好的方法來做到這一點,因爲這種方法似乎沒有正常工作?
[請不要把問題標題標籤(https://stackoverflow.com/help/tagging) – Liam
可能的複製[頁面重新加載時的全局變量使用情況](https://stackoverflow.com/questions/29986657/global-variable-usage-on-page-reload) – Liam
不是問題不在於存儲 - 它與輸出格式getPosition –