gpt4 book ai didi

gis - 如何将坐标转换为纬度和经度?

转载 作者:行者123 更新时间:2023-12-01 16:24:33 25 4
gpt4 key购买 nike

我正在对交通可视化应用程序进行逆向工程。我需要找出他们的数据源来源的纬度。具体来说 XY 0,0 是什么。我发现的唯一公式计算两点之间的距离,或方位/距离的位置。

他们使用 XY 在非常传统的应用程序中显示 map 。 XY 的单位是英尺。

我有这些坐标:

47.70446615506108, -122.34469839507263: x=1268314, y=260622
47.774182540800616,-122.3412994737105: x=1269649, y=286031
47.60024792289405, -122.32767331735774: x=1271767, y=222532
47.57012494413499, -122.29129609983679: x=1280532, y=211374

我需要找出 x=0, y=0 的纬度和经度,以及找出该值的公式是什么。

他们有两个数据源,一个比另一个更新。包含最新数据的提要不包括纬度、经度,而仅包括 XY。我试图根据他们的当前较少但信息更丰富(包括纬度、经度)的数据馈送来推断 0,0 是什么,这样我就可以简单地将他们的(较当前的)数据馈送的 XY 坐标转换为纬度和经度。

最佳答案

如果查看前两行数据,并减去纬度

47.7044 - 47.7741 = -0.06972 degrees

每纬度有 60 海里,每海里有 6076 英尺。

-.06972 * 60 * 6076 = 25,415 ft

减去两个“Y”值:

260662 - 286031 = 25,409 ft

所以这似乎证明了 X 和 Y 值的单位是英尺。

例如,如果您采用任何 Y 值,然后转换回度数

260622 ft / ( 6076 ft/nm ) / ( 60 nm/degree ) = .71
286031 ft / 6076 / 60 = .78

因此,从纬度(47.70 和 47.77)中减去这些值,您将得到非常接近 47 度的值,这应该是您的 y=0 点。

对于经度,赤道的 1 度为 60 海里,极地的 1 度为 0 英里。因此,每度的英里数必须乘以纬度的余弦,因此约为 cos(47 度),即 0.68。因此,每度的波长不是 6076 nm,而是大约 4145 nm。

因此对于 X 值,

1268314 ft / ( 4145 ft/nm ) / ( 60 nm/degree ) = 5.10 degrees
1269649 ft / 4145 / 60 = 5.10 degrees

这些 X 数字随着纬度的增加而增加(负值较小),因此我认为您应该添加 5.1 度,这意味着 X 基点约为

-122.3 + 5.1 = 117.2 West longitude for your x=0 point.

这大致是华盛顿州斯波坎的位置。

因此给定 X=1280532,Y=211374

Lat = 47 + ( 211374 / 6096 / 60 ) = 47.58
Lon = -117.2 - ( 1280532 / ( 6096 * cos(47.58)) / 60 ) = -122.35

大致相当于给定数据47.57和-122.29

差异可能是由于不同的投影造成的 - X,Y 系统可能是“扁平”投影,而不是适用于球形投影的纬度/经度?因此,为了准确起见,您可能还需要更高级的数学或开源库:)

这个问题也可能有帮助,它包含计算大圆距离的代码:

Calculate distance between two latitude-longitude points? (Haversine formula)

关于gis - 如何将坐标转换为纬度和经度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/609379/

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