Maps 将纬度/经度转换为地理参考地图上的相对X/Y坐标

Maps 将纬度/经度转换为地理参考地图上的相对X/Y坐标,maps,coordinate-systems,coordinate-transformation,map-projections,Maps,Coordinate Systems,Coordinate Transformation,Map Projections,在我知道三个角(或任何三个未对齐点)坐标(lat/lng)的地图上,我有地图上几个点的坐标(lat/lng) 我想要的是点到地图的相对坐标(相对于左上角的x/y) 我还对其他转换(x/y转换为lat/lng)感兴趣 我的地图非常小(小于10公里x10公里),我需要使用投影系统吗?或者我可以假设我的表面是完全平坦的,然后使用线性转换吗 编辑:我不知道(也不知道)我的背景地图使用哪种投影。我只知道3个地理参考点 解决方案是使用线性转换: 如果我的三个点是A(xA,yA),B(xB,yB),C(xC,

在我知道三个角(或任何三个未对齐点)坐标(lat/lng)的地图上,我有地图上几个点的坐标(lat/lng)

我想要的是点到地图的相对坐标(相对于左上角的x/y)

我还对其他转换(x/y转换为lat/lng)感兴趣

我的地图非常小(小于10公里x10公里),我需要使用投影系统吗?或者我可以假设我的表面是完全平坦的,然后使用线性转换吗

编辑:我不知道(也不知道)我的背景地图使用哪种投影。我只知道3个地理参考点

解决方案是使用线性转换:

如果我的三个点是A(xA,yA),B(xB,yB),C(xC,yC)和我想要定位X(X,y)的点

我可以在lat/lng参考中计算
a
b
AX=aAB+bAC


x=xA+a*(xB-xA)+b*(xC-xA)
y=yA+a*(yB-yA)+b*(yC-yA)

但我好像错过了什么


相关问题:

它取决于地图,但线性变换很简单。也可以使用Kavrayskiy变换。我还发现了反面:。这里有一个关于mercantor投影的问题:。

如果你想得到精确的转换,你需要使用国家/地区的本地投影,这些坐标分为以下几类。通过在谷歌地图中查找其中一个坐标(假设整个坐标集不跨越一个巨大的区域),你可以很容易地识别出来,这将告诉你坐标在哪个国家/地区。从那里你可以找到该国使用的当地投影系统。除非这里的目的是自行提出转换算法/实用程序,否则您可以利用一些库实现所有需要的计算,以从许多投影系统重新投影坐标:


,它是proj4的部分java端口。你是对的,你缺少了一些东西。您的公式(我没有深入研究)看起来是线性的,因此似乎只适用于仿射变换。映射通常不是从(lat,lon)到(x,y)的仿射变换


如果事情真的那么简单,那么即使你知道10x10正方形的点(0,0)、(10,0)和(5,10)的坐标,你也可以确定变换——但是你不能,因为x方向可以保持距离、经度或其他东西(当纬度,即y改变时),你无法区分这些情况。您必须使用其他信息。

我想知道,我是否需要使用投影(我不知道我的地图使用什么投影,我只知道3个地理参考点)。简单的线性转换会出现什么问题。