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

已知中心点坐标、azimuth等参数如何计算扇形点位的地理坐标

扇形地理坐标计算方案

基础原理

所有扇形点位的计算都基于已知起点经纬度、方位角、距离计算终点经纬度的大圆航线算法,不需要深入理解底层几何逻辑,直接套用下面的步骤和代码即可。

前置参数确认

先把你手上的参数统一成标准格式:

  • 中心点经纬度:(lon0, lat0),十进制度格式(比如116.403874, 39.914885)
  • 扇形半径:单位统一为米
  • 起始方位角:正北方向为0°,顺时针递增,取值范围0~360°
  • 扇形张角:扇形向起始方位角顺时针方向展开的总角度,比如90°就是四分之一圆扇形

实现步骤

  1. 先实现终点坐标计算函数,以下是Python示例代码:
import math

def calc_end_point(lon0, lat0, azimuth, distance):
    # 地球平均半径,单位米
    R = 6371000
    # 角度转弧度
    lon0_rad = math.radians(lon0)
    lat0_rad = math.radians(lat0)
    az_rad = math.radians(azimuth)
    # 计算终点纬度
    lat_rad = math.asin(math.sin(lat0_rad)*math.cos(distance/R) + math.cos(lat0_rad)*math.sin(distance/R)*math.cos(az_rad))
    # 计算终点经度
    lon_rad = lon0_rad + math.atan2(math.sin(az_rad)*math.sin(distance/R)*math.cos(lat0_rad), math.cos(distance/R)-math.sin(lat0_rad)*math.sin(lat_rad))
    # 弧度转回十进制度
    lon = math.degrees(lon_rad)
    lat = math.degrees(lat_rad)
    return (lon, lat)
  1. 生成扇形所有点位:
  • 先计算扇形两个侧边的端点:分别把azimuth参数填起始方位角、起始方位角+张角,得到两个端点坐标
  • 如果需要生成弧形上的采样点,可自定义采样间隔(比如每5度取一个点),遍历起始方位角到起始方位角+张角之间的所有角度,每个角度都调用一次上面的函数,就能得到弧上的所有采样点
  • 最终完整的扇形坐标序列为:中心点 → 第一个侧边端点 → 所有弧上采样点 → 第二个侧边端点 → 中心点,按这个顺序连接就是完整的扇形面。

注意事项

如果你的扇形半径超过100公里,或需要极高的坐标精度,可以替换终点计算函数为Vincenty公式适配地球椭球模型;普通城市级、园区级的小范围场景,上面的代码误差在米级,完全满足日常需求。

内容的提问来源于stack exchange,提问作者vk-code

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 21:15:10