我正在使用WordPress/jQuery/Google Maps设置来向用户显示列表Map。
jQuery.goMap.map
代码用于加载WordPress插件上使用的Google Maps示例。
我已经编写了以下函数来存储和加载本地存储的纬度、经度和缩放级别。LAT/LNG和缩放级别的存储正在工作,缩放级别的加载也在工作,但我无法使Map以加载的纬度和经度位置为中心。
我尝试在loadUserZoom
函数中使用bounds.extend(latLng);
和jQuery.goMap.map.fitBounds(bounds);
,但结果是一个完全放大的Map。这意味着存储的缩放级别值将被忽略。
当前运行的代码可以是tested here。
标题导航中的明文链接可用于从浏览器中清除本地存储值。这是出于测试目的而实现的。
如有任何帮助,我们不胜感激。
功能:store UserZoom
function storeUserZoom() {
let zoom = jQuery.goMap.map.getZoom();
localStorage.setItem( 'zoom', zoom);
let center = jQuery.goMap.map.getCenter();
let lat = center.lat();
let lng = center.lng();
let latLng = {
lat: lat,
lng: lng
}
localStorage.setItem( 'latLng', JSON.stringify(latLng));
}
功能:loadUserZoom
function loadUserZoom() {
if (localStorage.getItem( 'zoom' )) {
let zoom = parseInt(localStorage.getItem( 'zoom' ));
console.log(zoom);
// Logs correct zoom level
let latLng = JSON.parse(localStorage.getItem( 'latLng' ));
console.log(latLng);
// Logs Object { lat: 51.69124213478852, lng: -113.2478200914128 }
jQuery.goMap.map.setZoom(zoom);
jQuery.goMap.map.setCenter(latLng);
// latLng used is incorrect
}
}
1条答案
按热度按时间ar7v8xwq1#
通过调整
loadUserZoom
函数在initMap
函数中的执行方式,我相信我已经将重点放在了这个问题上。当Map空闲时,
loadUserZoom
函数被 Package 在Google Maps Listen Once事件侦听器中。代码如下所示。我最初将其设置为
addListener
,这似乎与所需的功能冲突。我认为这意味着只要Map处于空闲状态,它就会定期执行。下面包括我更新的
loadUserZoom
函数。