在 Lat/Lon 之间转换为局部坐标系?当知道边界

Translating between Lat/Lon to a local coordinate System? When knowing the bounds

所以我在 Lat/Lon 中有 4 个边界点,而且我在 (x,y) 坐标系中也有 4 个边界点,它们与 lat/lon 框的边界点直接相关。 (它是通过 c# 中的 API 加载的图块,但不存在获取局部坐标的函数)

此图块的宽度和高度为 305.5 个单位(这是一个矢量图块)我将如何设置线性代数问题以便当我在范围内有 Lat/Lon 时,我可以找到 x,y它在另一个坐标系中的坐标。

我读过多个投影问题,其中 none 涉及作为矢量图像的图像,但我确实有一个表示地图的绝对距离(305.5 个局部单位)。

这是我有的一些数据,但我试图将其变成一种算法,我可以在 c# 中用于不同的边界等(数据是通过 API 获得的,我可以在其中轻松获得边界和 lat/lon 值:

                              (lat,lon) -> (x,y)
Top-Left Bound:  (38.79691,-90)         -> (-305.5,305.5)
Top-Right Bound: (38.79691,-89.99451)   -> (305.5,305.5)
Bot-Left Bound:  (38.79263,-90)         -> (-305.5,-305.5)
Bot-Right Bound: (38.79263,-89.99451)   -> (305.5,-305.5)
Center-Bound:    (38.79477,-89.99725)   -> (0,0)

在您的具体情况下,这就是您要查找的内容

X = -305.5 + (305.5 - -305.5) * (lon - -90) / (-89.99451 - -90) Y = -305.5 + (305.5 - -305.5) * (lat - 38.79691) / (38.79691 - 38.79477)

一般形式为:

X = ImageLeft + ImageWidth * (lon - LonLeft) / (LonWidth)

您可能需要稍微调整一下,具体取决于最小值是在顶部/左侧还是底部/左侧。