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

如何在JavaScript中从谷歌地理编码API的JSON结果提取经纬度

从谷歌地理编码API提取经纬度的JavaScript方案

嘿,这事儿其实挺简单的,咱们先拆解一下API返回的JSON结构,再一步步写代码提取你要的lat和lng。

首先看你给出的返回结果:它是一个数组(最外层的[]),数组里的第一个元素包含了所有地址信息,而我们要的经纬度就藏在这个元素的geometry.location下面。

基础提取方法

先写个最直接的示例,假设你已经拿到了API返回的响应数据:

// 模拟API返回的响应数据
const geocodeData = [{ 
  'address_components': [{ 'long_name': 'Macau', 'short_name': 'MO', 'types': ['country', 'locality', 'political'] }], 
  'formatted_address': 'Macau', 
  'geometry': { 
    'bounds': { 'northeast': { 'lat': 22.2170639, 'lng': 113.6127001 }, 'southwest': { 'lat': 22.1066001, 'lng': 113.5276053 } }, 
    'location': { 'lat': 22.198745, 'lng': 113.543873 }, 
    'location_type': 'APPROXIMATE', 
    'viewport': { 'northeast': { 'lat': 22.2170639, 'lng': 113.6127001 }, 'southwest': { 'lat': 22.1066001, 'lng': 113.5276053 } } 
  }, 
  'place_id': 'ChIJ88g14uB6ATQR9qyFtCzje8Y', 
  'types': ['country', 'locality', 'political']
}];

// 提取经纬度
const targetLocation = geocodeData[0].geometry.location;
const lat = targetLocation.lat;
const lng = targetLocation.lng;

console.log('提取到的纬度:', lat); // 输出 22.198745
console.log('提取到的经度:', lng); // 输出 113.543873

更安全的写法(避免报错)

实际开发中,API返回可能出现异常(比如没有匹配结果、网络问题导致数据不完整),所以最好加一层判断,防止因为某个属性不存在而报错:

if (geocodeData && geocodeData.length > 0) {
  const firstResult = geocodeData[0];
  // 检查geometry和location是否存在
  if (firstResult.geometry && firstResult.geometry.location) {
    // 用解构赋值简化代码
    const { lat, lng } = firstResult.geometry.location;
    console.log('纬度:', lat);
    console.log('经度:', lng);
  } else {
    console.error('未找到有效的位置信息');
  }
} else {
  console.error('API未返回任何地址结果');
}

关键逻辑说明

  • 因为API返回的是数组,所以我们先取第一个元素geocodeData[0](通常地理编码API会把最匹配的结果放在第一位)
  • 然后依次访问geometry → location,这里面的lat就是纬度,lng就是经度

内容的提问来源于stack exchange,提问作者Ben.W

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:18:48