You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

给定两组坐标及对应半径,求交点经纬度的计算方法

嘿,咱们来一步步拆解这个问题:

结论先行

根据你给出的参数,这两个圆是外离状态,没有交点。不过我会把推导过程和“如果满足相交条件该怎么算”都给你讲清楚。

第一步:计算两圆心的实际距离

你的两个圆心经度完全相同(都是103.4278°),只有纬度差:
Δlat = 3.540485 - 3.540437 = 0.000048°

在地球表面,纬度方向每度对应的直线距离大约是111139米(这是地球平均半径换算来的近似值),所以两圆心之间的直线距离D为:
D = 0.000048° × 111139 m/° ≈ 5.3347米

第二步:判断两圆是否存在交点

两圆的位置关系由圆心距离D和半径之和/差的关系决定:

  • 外切(1个交点):D = d₁ + d₂
  • 相交(2个交点):|d₁ - d₂| < D < d₁ + d₂
  • 内切(1个交点):D = |d₁ - d₂|
  • 无交点:D > d₁ + d₂(外离)或 D < |d₁ - d₂|(内含)

代入你的参数:d₁=4m,d₂=1m,半径和为5m,而咱们算出来的D≈5.3347m > 5m,属于外离,所以这两个圆没有交点。

补充:如果满足相交条件,怎么计算交点经纬度

假设两圆心距离D落在|d₁-d₂|d₁+d₂之间,因为两个点距离极近,球面曲率的影响可以忽略,直接用平面几何近似计算就可以:

  1. 建立临时平面坐标系:以第一个圆心为原点(0,0),纬度方向为x轴,经度方向为y轴(因为两圆心经度相同,y轴方向的初始距离为0)。
  2. 第二个圆心在临时坐标系里的坐标就是(D, 0)
  3. 设交点坐标为(x,y),根据两个圆的方程:
    • 圆1:x² + y² = d₁²
    • 圆2:(x - D)² + y² = d₂²
  4. 把两个方程相减消去,解出x:
    x = (d₁² - d₂² + D²) / (2D)
  5. 把x代入圆1的方程,解出y:
    y = ±√(d₁² - x²)
  6. 把临时坐标转换回经纬度:
    • 交点纬度 = 第一个圆心纬度 + (x / 111139)°
    • 交点经度 = 第一个圆心经度 + (y / (111139 × cos(lat)))°(这里的lat可以用第一个圆心的纬度近似,因为变化极小)

比如如果D=4m(满足3<4<5),代入就能算出两个交点的具体经纬度啦。

内容的提问来源于stack exchange,提问作者April

火山引擎 最新活动