我正在构建一个使用Google地图的跟踪应用程序,因此用户可以点击多个标记。该页面最终每15分钟左右刷新一次,以跟上最新的跟踪数据。但是我想让用户在页面刷新后仍然坚持使用所选标记,因此如果需要,他们可以跟随选定的车辆(标记代表)。
我已尝试使用本地存储来实现此目的。我可以把lat和long放到存储器中没有问题,但是当我来解决它时,我发现经度已经出现了太多的小数位,所以API不会识别位置。 / p>
要在刷新后转到标记我的代码是这样的:
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
是否有更好的方法来执行此操作,因为此方法似乎不是工作正常吗?