从任何点将米转换为纬度经度

Zau*_*yev 11 gis google-maps

在我的项目中,我必须从距离为500米的一个点找到[纬度,经度]坐标(这可以是任何随机坐标或我的点周围的坐标数组).我怎样才能做到这一点?

注意:我需要这个以便找到不同于最短点之间的多个路径,这些路径通过Google Maps Directions Api返回给我们.所以使用我的方法我将定义从A到B的道路中心,然后在下面找到一些坐标并且高于该中心位置并将其用作从A到B的另一个航路点 - 我想这可能有助于我找到多条路径......

GIS专业人士的任何建议?

编辑:UTM转换是这种计算的最佳选择,如果有人需要,我已经创建了UTM Java类.

Map*_*sis 6

如果我理解你的问题,你就有一个Lat/Long的已知点,你需要计算另一个点的纬度/经度,或者距你的起点500米.

如果这是您正在做的事情,您有几个选项,其中大多数涉及专业GIS API.但是,我猜你是程序员/数学家而不是地理学家,所以你可能更愿意选择使用Haversine公式.您可以在此处找到关于此主题的讨论以及公式.

需要注意的是,你正在使用的距离(500米非常小),地球远不是一个完美的球体,甚至是一个略微扁平的椭球体.它在本地"块状",可以计算出来.如果你需要更高的准确度,你必须通过使用适当的本地基准(地球模型 - 有很多例如参见EPSG列表)来解释这些缺陷,为此你可能需要开始使用GIS库作为数学否则会非常详细.

  • UTM已经通过将地球划分为大量区域来解释地球表面的局部变形,每个区域都有自己的基准面.这就是为什么它比WGS更准确,因为WGS对整个地球使用单一投影.如果您需要工具转换为笛卡尔坐标 - 计算您的点并转换回Lat/Long而不用担心数学,请查看GDAL/OGR(尤其是OSR - 这是空间参考API) (2认同)