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

如何从谷歌地图圆形获取经纬度及A、B、C、D点位的经纬度

嘿,我来帮你搞定谷歌地图里的经纬度获取问题,分两部分给你讲得明明白白:

获取谷歌地图圆形区域的经纬度信息

谷歌地图里的圆形区域核心信息其实是圆心经纬度和半径,如果需要边界上的经纬度点,也有对应的方法:

手动操作场景(非开发)

  • 先拿圆心坐标:打开谷歌地图,右键点击你想设为圆心的位置,选择「这里的坐标」,就能直接复制到圆心的经纬度(格式一般是「纬度, 经度」)。
  • 绘制并获取半径:点击左侧「添加图层」,选择「画圆」工具,点击圆心后拖动鼠标调整大小,地图上会实时显示半径数值(支持公里/英里切换)。如果要精确设置半径,绘制完成后右键圆形选「编辑」,在面板里输入精确数值就行。
  • 提取边界经纬度点:要是需要圆形边界上的一系列经纬度,可以按F12打开浏览器开发者工具,点击地图上的圆形,在Elements面板里找到对应的GeoJSON数据,里面会包含边界的坐标数组,直接复制使用即可。

开发场景(API实现)

如果是做开发需求,用Google Maps JavaScript API就能轻松搞定:

  1. 创建圆形对象,传入圆心和半径(注意半径单位是米):
    const circle = new google.maps.Circle({
      center: { lat: 37.7749, lng: -122.4194 }, // 示例:旧金山坐标
      radius: 1000, // 1000米
      map: map // 你的地图实例
    });
    
  2. 获取核心信息:调用circle.getCenter()拿到圆心经纬度,circle.getBounds()获取圆形的边界范围(西南、东北两个角的经纬度)。
  3. 生成边界点:如果需要生成圆形边界上的多个经纬度点,可以通过几何计算实现,比如每1度取一个点:
    const center = circle.getCenter();
    const radius = circle.getRadius();
    const boundaryPoints = [];
    const metersPerLatDegree = 111320; // 1度纬度约等于111320米
    const metersPerLngDegree = 111320 * Math.cos(center.lat() * Math.PI / 180);
    
    for (let angle = 0; angle < 360; angle += 1) {
      const rad = (angle * Math.PI) / 180;
      const lat = center.lat() + (radius * Math.sin(rad)) / metersPerLatDegree;
      const lng = center.lng() + (radius * Math.cos(rad)) / metersPerLngDegree;
      boundaryPoints.push({ lat, lng });
    }
    // boundaryPoints里就是圆形边界的经纬度数组
    
获取圆形区域内指定位置A、B、C、D的经纬度

不管这些点是不是在圆形里,获取单个点经纬度的方法都很直接,之后再验证是否在区域内就行:

手动操作场景

  1. 打开谷歌地图,找到你要标记的位置A(比如建筑、路口)。
  2. 右键点击该位置,选择「这里的坐标」,弹窗里会显示经纬度,直接复制就好。
  3. 重复上面的步骤,依次拿到B、C、D的经纬度。
  4. 验证是否在圆形内:把复制的经纬度粘贴到谷歌地图搜索框,看标记点是否落在你之前画的圆形里就行。

开发场景(批量获取+验证)

如果这些位置是已知名称(比如“XX商场”),可以用Geocoding API先转成经纬度,再判断是否在圆形区域内:

const geocoder = new google.maps.Geocoder();
const circleCenter = { lat: 37.7749, lng: -122.4194 };
const circleRadius = 1000; // 1000米

// 封装获取并验证的函数
function getLocationAndCheck(address, label) {
  geocoder.geocode({ address: address }, (results, status) => {
    if (status === google.maps.GeocoderStatus.OK) {
      const loc = results[0].geometry.location;
      // 计算点到圆心的距离(单位:米)
      const distance = google.maps.geometry.spherical.computeDistanceBetween(loc, circleCenter);
      if (distance <= circleRadius) {
        console.log(`${label}的经纬度:(${loc.lat().toFixed(6)}, ${loc.lng().toFixed(6)}),在圆形区域内`);
      } else {
        console.log(`${label}的经纬度:(${loc.lat().toFixed(6)}, ${loc.lng().toFixed(6)}),不在圆形区域内`);
      }
    } else {
      console.log(`无法获取${label}的坐标:${status}`);
    }
  });
}

// 调用函数获取A、B、C、D的坐标
getLocationAndCheck("位置A的具体名称", "A");
getLocationAndCheck("位置B的具体名称", "B");
getLocationAndCheck("位置C的具体名称", "C");
getLocationAndCheck("位置D的具体名称", "D");

内容的提问来源于stack exchange,提问作者ISURU UDAYANGA BANDARA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:11:23