You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 13:06:03