gpt4 book ai didi

javascript - 如果我有一个 lat/lng,我假设它位于 0,0 那么我如何计算另一对 lat/lng 的 x, y 坐标?

转载 作者:行者123 更新时间:2023-11-28 08:00:41 26 4
gpt4 key购买 nike

我见过这个问题的许多变体,但我无法将他们的答案与我的具体需求联系起来。

我有几组 3 纬度/经度坐标对。任何集合中的坐标彼此之间都在几公里之内。

对于每个集合,我想将坐标转换为 x/y 值,以便我可以绘制它们。

我想将其中 1 个坐标分配给 0,0,然后计算其他两个坐标的相对 x/y 值。

该网站实现了我想要的功能,但不幸的是不共享算法: http://www.whoi.edu/marine/ndsf/cgi-bin/NDSFutility.cgi?form=0&from=LatLon&to=XY

最佳答案

  1. 为了清楚起见,首先给出一些定义

    • a是纬度<-pi/2,+pi/2>
    • b是经度 <0,+2*pi>
    • re , rp是地球的赤道和极半径
    • a0,b0, a1,b1, a2,b2你的点在球坐标中吗
    • x0,y0, x1,y1, x2,y2是你想要的笛卡尔坐标
  2. 将坐标转换为相对于 ( a0,b0 )

    • 假设东方与 X 轴对齐,北极与 Y 轴对齐
    • x0=0.0;
    • y0=0.0;
    • r1=re*cos(a1)+rp*sin(a1)//点 1 的实际半径
    • r2=re*cos(a2)+rp*sin(a2)//点 2 的实际半径
    • x1=x0+((b1-b0)*r1);
    • x2=x0+((b2-b0)*r2);
    • y1=y0+((a1-a0)*re);//这里代替 re 的是从 0 到 a1-a0 的椭圆曲线长度
    • y2=y0+((a2-a0)*re);//这里代替 re 的是从 0 到 a2-a0 的椭圆曲线长度

如果 re!=rp 那么 y1,y2 坐标将会不太准确

  • 要纠正这个问题,只需将 ((a1-a0)*re) 替换为正确的公式即可
  • 对于椭圆弧->长度计算(这个是针对圆的)
  • 我懒得计算积分
  • 无论如何,这已经足够好了(地球偏心率还不错)
  • 您还可以在减法后标准化 Angular
  • while (a<-pi) a+=2.0*pi;`
  • while (a>+pi) a-=2.0*pi;`
  • 只是为了安全......

关于javascript - 如果我有一个 lat/lng,我假设它位于 0,0 那么我如何计算另一对 lat/lng 的 x, y 坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25442261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com