我的数据库里有一套GPS定位系统。因为我想把它们画在地图上,我偶然发现了"Douglas-Peucker-Algorithm“算法,它会删除一条线上不”必要“的点……
但是我到处寻找,我只发现了像素X/Y坐标的算法,而不是纬度和经度的算法。
因此,我想将Lat / Long转换为二维的"X/Y“视图?这是可能的吗,还是我在想“太复杂了”?:)
http://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm
发布于 2011-07-07 03:45:05
如果您可以安全地假设GPS没有移动数千公里,并且您离北极/南极不太近,那么您可以通过将纬度和经度乘以一个常量来近似X/Y坐标。纬度总是相同的千米/度(大约10000千米是从赤道到极点之一的90度)。对于经度,乘以相同的量乘以cos(latitude)。
然而,从经度/纬度计算3D位置并不困难:请参阅球面坐标上的this wikipedia article如何做到这一点。方位/高度是经度/纬度。
这仍然是一个近似值,因为你需要直线距离,而不是跟随地球表面,但对于你的应用程序,我无法想象这是一个问题。
哦,谢谢你链接到道格拉斯·普克算法...我将在一个不同的问题域中尝试它。
发布于 2011-07-07 03:48:15
这取决于你想要的“直线”是什么。如果你想在地图上画一条直线,那么你必须使用正确的投影来转换你的经纬度坐标(可能是Mercator projection,但是有一个full list on Wikipedia)。然而,如果你正在寻找表面上最直的直线(即与great circle重合的直线),你不应该对你的经纬值应用任何转换。
发布于 2011-08-20 06:10:01
前段时间我问过this question,得到的答复允许我用java为this project写一个实现。它在EarthGeometry.java中
https://stackoverflow.com/questions/6601824
复制相似问题