将LatLng转换为(x,y)坐标

时间:2018-11-21 09:30:07

标签: google-maps google-maps-api-3 maps latitude-longitude

我正在使用Google地图,其中将显示多辆车。我有两个点(一个点将是旧位置,另一个点将是当前位置),该定位系统将帮助编写穿过这两个点的直线的方程式。可能与其他线相交,并告知我发生碰撞的可能性。

但是问题是我正在从GPS模块获取坐标,它将以纬度和经度格式给出位置。

为此,我需要x,y坐标来编写通过它们的直线方程。我已经在不同的网页上探索了大多数方法,但是问题是他们会要求一些与我的方法类型不兼容的屏幕尺寸(或地图范围)。

问题:有什么方法可以将纬度和经度转换为(x,y)坐标,就像我们从太空和地球上看到的是平坦的并采取几内亚湾(拉特:0 °,Lon:0°)作为起点。

1 个答案:

答案 0 :(得分:0)

  1. 如果您的任务需要高精度,则必须使用“纬度/经度”并解决“大圆交”任务。地球不是平坦的。

  2. 如果您可以接受计算中存在的错误,并且所有车辆都位于较小的有限区域内(最大100公里,尽管您可以接受,但取决于错误),则可以将该受限区域视为平坦区域

例如,如果您的一辆车位于N10.0 E10.0,第二辆车位于N10.1 E10.2,则可以选择N10.0 E10.0作为原点。

因此,这两辆车将具有以下(X,Y)坐标(假定X轴沿着赤道行进):    1)(0.0km 0.0km)    2)(21.86km 11.1km)

第二辆车的X为(40000km / 360度)* cos(10.0)*(10.2-10.0)= 21.86km

第二辆车的Y为(40000km / 360度)*(10.1-10.0)= 11.1km

如果您要对彼此相距1万公里的车辆应用平直的直线相交点,那么您的计算很可能是错误的。