2012-12-09 82 views
0

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

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

我已经做了一个简单的转换只有2分,但我想要一个更准确的结果。 我最好使用c/C++来做到这一点。一个等价点的

例如: 纬度:-2.148707经度 :-79.876270 X:2012078.15 Y:498355.88

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

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

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

回答

0

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

0

正确的方法是向文件的提供者询问坐标系与什么有关。 DXF不是一个合适的格式。你需要一个像ESRI Shp文件或mif/mid格式的格式来定义地理坐标系。否则它有点不清楚,如果数据足够精确,将用于地理参考。 但是,在米与纬度经度之间转换并不困难,特别是如果面积不超过10-20英里。 您可以使用第一次尝试cylyndrical equidistant转换,这只是几行简单的代码。再看看dxf文件中的y-achsis是否指向东北极,否则你必须找出假北向的数量并旋转回北。 MapInfo Professional是一个免费评估期的工具,该工具允许为这些未知坐标系指定参考点。 (至少对于位图我记得那个功能)。
但是,如果你是一个专业的SW开发人员,你应该拒绝该文件并要求wgs84纬度版本。