笛卡尔到地理/球面坐标

时间:2012-12-09 20:29:18

标签: map-projections

我有一个以米为单位的城镇的dxf文件。我需要从地图中提取折线并将它们转换为地理坐标。我的想法是在已知坐标的地图上添加3或4个点。我将使用谷歌地图作为参考。这些3或4点将放置在交叉路口,所以我不能放置它们,因为它们定义了一个矩形(我认为它会更简单)。 我无法找出转换地图对象的所有坐标需要做什么计算。

谷歌地图地球半径:6378137米。 所以,如果我考虑3分,我将有3个关系: (x1,y1)带(lat1,lng1) (x2,y2)with(lat2,lng2) (x3,y3)与(lat3,lng3)

我只用了2分进行了一次简单的转换,但我希望得到更准确的结果。 我最好用c / c ++来做。

一个等效点的例子: 纬度:-2.148707 经度:-79.876270 x:2012078.15 y:498355.88

这不是UTM,我是从here验证的。因为我不知道它是否正常化。

我google了很多,我找到了库,但不知道tmy坐标是否符合特定的格式,我认为我不能使用它。

无论如何,感谢阅读,我希望有人可以帮助我。

2 个答案:

答案 0 :(得分:0)

这并不容易。首先,您需要知道您正在使用哪个参考椭球(例如WGS-84),然后知道哪个投影。我不会尝试手工实现这一点,而是使用postgis,这将为你做所有这些丑陋的工作。

答案 1 :(得分:0)

正确的方法是向文件提供者询问坐标系与之相关的内容。 dxf不是一个合适的格式。你需要一个像ESRI Shp文件或带有定义的地理坐标系的mif / mid这样的格式。 否则,有些不清楚数据是否足够精确,可用于地理参考。 然而,在米和纬度经度之间进行转换并不困难,特别是如果该区域不超过10-20英里。 你可以使用第一次尝试cylyndrical等距转换,这只是几行简单的代码。看看dxf文件中的y-achsis是否指向nort极点,否则你必须找出假北极量并向北旋转。 MapInfo Professional是一个具有免费评估期的工具,此工具可以指定此类未知坐标系的参考点。 (至少对于位图,我记得那个特征) 但如果你是一名专业的sw开发者,你应该拒绝该文件并要求在wgs84 lat lon中使用一个版本。