调用Map.getCenter()返回函数而非经纬度坐标的问题求助
问题原因
- 你调用的是Google Maps JavaScript API的
getCenter()方法,该方法的设计返回值就是LatLng类实例,而非直接的数值对象。该实例下的lat、lng均为内置方法,需要主动调用才能获取对应的原始数字坐标,你在控制台闭包中看到的d、e字段就是API内部存储的实际经纬度值,没有直接暴露为公共属性是API的封装策略。 - 你记忆中直接返回坐标值的情况,大概率是混淆了其他地图平台的API逻辑,或者是误将
LatLng实例序列化后的输出当成了原始返回值。
解决方法
要获取经纬度的原始数值,直接调用lat()、lng()方法即可,修改你的try块代码为以下形式:
try { const mapCenter = map.getCenter() // 调用方法获取数值 const currentLat = mapCenter.lat() const currentLng = mapCenter.lng() console.log('地图中心点纬度:', currentLat) console.log('地图中心点经度:', currentLng) // 后续需要使用坐标的场景直接用currentLat、currentLng变量即可 } catch (error) { console.log(error) }
如果需要快速生成纯对象格式的坐标,可直接按如下写法处理:
const centerCoords = { lat: map.getCenter().lat(), lng: map.getCenter().lng() }
内容的提问来源于stack exchange,提问作者Lurking
相关产品推荐
相关产品推荐

