Google Maps API加载时无法从本地存储恢复地图中心位置求助
问题解决:Google Maps 无法加载存储的经纬度定位
问题根源
你现在的代码里,loadUserZoom传给setCenter()的是普通JSON对象,但Google Maps JS API的setCenter()必须接收**google.maps.LatLng实例**,不是简单的{lat: x, lng: y}键值对,这就是定位失效的核心问题。
修复代码
修改后的loadUserZoom函数
function loadUserZoom() { if (localStorage.getItem( 'zoom' )) { let zoom = parseInt(localStorage.getItem( 'zoom' )); let latLngData = JSON.parse(localStorage.getItem( 'latLng' )); // 把普通对象转成Google Maps要求的LatLng实例 let mapCenter = new google.maps.LatLng(latLngData.lat, latLngData.lng); jQuery.goMap.map.setCenter(mapCenter); jQuery.goMap.map.setZoom(zoom); } }
额外说明
- 建议先调用
setCenter()再设置缩放,确保地图先定位到目标点再应用保存的缩放级别,逻辑更顺畅。 - 之前用的
fitBounds()会自动计算缩放级别来适配边界,会直接覆盖你存储的zoom值,所以不适合用来恢复用户自定义的视图状态。
内容的提问来源于stack exchange,提问作者Mike Hermary
相关产品推荐
相关产品推荐

