掌握 GIS 数学,从哪里开始?
我负责一个程序,该程序用于创建一组节点和路径以供自主地面车辆使用。该程序通过将项目的位置指示为原点 0,0 向北 x 米和向东 y 米来跟踪其地图中所有项目的位置。在现实世界中,车辆知道原点的纬度和经度位置,因为它是由 dgps 系统确定的,并且精确到几厘米。我的程序不知道任何经纬度坐标。
我的目标之一是修改程序以跟踪项目的经纬度坐标以及原点和项目相对于该原点的 x,y 位置。乍一看,我似乎要修改程序以允许传入原点的经纬度坐标,之后我希望程序能够自动计算地图中当前每个项目的经纬度。从我到目前为止的研究来看,我相信我需要弄清楚从类似 UTM 的投影转换为纬度长坐标背后的数学原理,在投影中我指定原点和经线等,而不是已经为 UTM 定义的任何内容。
我来请教各位GIS程序员,我的思路正确吗?在我看来,有太多的事情需要解决,我不确定答案是否不是那么简单,“哦,是的,这里有从米到经纬度的转换”
目前,由于DGPS 的本质,系统确实不需要关心位置,哦,什么...... 40 公里?距原点的半径。鉴于此,以及我需要确保坐标误差不大于 0.5 米这一事实,我是否需要比简单的纬度/经度到米转换常数更复杂的东西?
我对这里的材料很了解。我可以使用一些关于要研究哪些概念的指示。
非常感谢!
I am in charge of a program that is used to create a set of nodes and paths for consumption by an autonomous ground vehicle. The program keeps track of the locations of all items in its map by indicating the item's position as being x meters north and y meters east of an origin point of 0,0. In the real world, the vehicle knows the location of the origin's lat and long, as it is determined by a dgps system and is accurate down to a couple centimeters. My program is ignorant of any lat long coordinates.
It is one of my goals to modify the program to keep track of lat long coords of items in addition to an origin point and items' x,y position in relation to that origin. At first blush, it seems that I am going to modify the program to allow the lat long coords of the origin to be passed in, and after that I desire that the program will automatically calculate the lat long of every item currently in a map. From what I've researched so far, I believe that I will need to figure out the math behind converting to lat long coords from a UTM like projection where I specify the origin points and meridians etc as opposed to whatever is defined already for UTM.
I've come to ask of you GIS programmers, am I on the right track? It seems to me like there is so much to wrap ones head around, and I'm not sure if the answer isn't something as simple as, "oh yea theres a conversion from meters to lat long, here"
Currently, due to the nature of DGPS, the system really doesn't need to care about locations more than oh, what... 40 km? radius away from the origin. Given this, and the fact that I need to make sure that the error on my coordinates is not greater than .5 meters, do I need anything more complex than a simple lat/long to meters conversion constant?
I'm knee deep in materials here. I could use some pointers about what concepts to research.
Thanks much!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
给定纬度/经度的起点以及距离和方位,找到终点就是测地线计算。 proj.4 网站上有关于测地线计算和错误的精彩总结。他们得出的结论是,使用球形模型可以获得点间距离的结果,误差最多为 0.51%。结合在 WGS 之间转换的公式-84 和 ECEF (请参阅“LLA 到 ECEF”和“ECEF 到 LLA”部分,似乎它可以满足您的需要。
如果您想通过将平面地图反向投影到WGS-84,proj.4是一个投影软件包,它有源代码,并且附带。三个命令行实用程序 -
proj
,用于在地图投影和笛卡尔数据之间进行转换;cs2cs
,用于在不同的地图投影和geod
之间进行转换; ,美国地质调查局发布了非常全面的地图投影处理。
Given a start point in lat/long and a distance and bearing, finding the end point is a geodesic calculation. There's a great summary of geodesic calculations and errors on the proj.4 website. They come to the conclusion that using a spherical model can get results for distance between points with at most 0.51% error. That, combined with a formula to translate between WGS-84 and ECEF (see the "LLA to ECEF" and "ECEF to LLA" sections, seems like it gets you what you need.
If you want to really get the errors nailed down by inverse projecting your flat map to WGS-84, proj.4 is a projection software package. It has source code, and comes with three command line utilities -
proj
, which converts to/from cartographic projection and cartesian data;cs2cs
, which converts between different cartographic projections; andgeod
, which calculates geodesic relationships.The USGS publishes a very comprehensive treatment of map projections.
如果可以的话我愿意做一个完整的计算。这样您将始终尽可能准确。
如果您碰巧使用 C++,GDAL 是一个非常好的库。
I'd do a full-up calculation if you can. That way you'll always be as accurate as you can be.
If you happen to be using C++ the GDAL is a very good library.
对于 40 公里的范围,您可能会发现将世界近似为 2D 平面可能可行,尽管 UTM 变换将是理想的方法 - 无论如何,我建议使用实际的 WGS84 坐标和 WGS84 坐标。椭球体用于计算,例如大圆距离或计算方位角。
如果您感到无聊,您可以按照我一直在研究的类似路线进行操作,它可以用作不同数据(例如 OSGB36 或 WGS84)的基类......
For a range of 40km, you may find that approximating the world to a 2D flat surface may work, although a UTM transform would be the ideal way to go - in any case, I'd advocate using the actual WGS84 co-ordinates & ellipsoid for calculations such as great circle distance, or calculating bearings.
If you get bored, you could go down a similar line to something I've been working on, that can be used as a base class for differing datums such as OSGB36 or WGS84...