将距离转换为坐标[重复]

Posted

技术标签:

【中文标题】将距离转换为坐标[重复]【英文标题】:converting distance into coordinates [duplicate] 【发布时间】:2011-11-02 01:36:34 【问题描述】:

如何将给定的距离(以米为单位)转换为地理坐标。

我需要在地图上绘制一个多边形(一个正多边形,如圆形),但是它的半径以米为单位,我如何计算以度数或弧度为单位的半径?

我可能会用 c 编写代码

【问题讨论】:

你的问题是错误的。圆不是多边形,您不能以度或弧度(旋转单位)来测量半径(线性距离单位)。你的问题的标题也很荒谬。 我不知道他们现在在教什么,但大约 55 年前,我被告知圆是一个具有无限条边的多边形。 意思是无限的边数。我认为他的问题是,给定纬度/经度地图上的一个点,并根据地图的比例绘制一个圆圈,使其半径为 1000 米,是否有可能找到任何点的纬度/经度在那个圆的圆周上,它就是。 能否请您编辑以使此编程相关?否则,这将作为题外话关闭或可能迁移到Geographic Information Systems。 嗯,问题是我正在考虑一个有很多边的正多边形作为一个圆。无论如何,我有一个以米为单位的距离,是围绕纬度/经度点的圆的半径。 【参考方案1】:

哦,伙计,地理坐标在背后可能会很痛苦。首先,我假设地理坐标是指大地坐标(纬度/经度)。

其次,你找不到弧度或度数的“半径”。你为什么问?好吧,赤道的一经度比靠近北极或南极的一经度长得多。由于地球不是一个完美的球体,因此纬度一度的弧线也会根据您在地球上的位置而变化。它通常被建模为椭球体。

话虽如此,这里有两种方法可以将多边形的坐标映射到纬度坐标:

1) 如果您觉得自己是个十足的坏蛋,您可以用 lat-lon 进行数学计算。很多触发,容易犯错误......不要这样做。我只是在此处包含此选项,让您知道这是可能的。

2) 将大地坐标转换为 UTM。然后,您可以以米为单位做任何您需要做的事情(即找到多边形的顶点),然后将生成的 UTM 转换回大地测量。就个人而言,我认为这是要走的路。

【讨论】:

【参考方案2】:

好吧,考虑一下在赤道(0 度纬度),1 度经度等于大约 60 海里。在任一极(纬度 90 度),单经度等于 0 海里。我记得纬度乘以 60 的余弦将为您提供在该纬度的单经度处的近似距离(以海里为单位)。

但是,您必须考虑到您使用的地图投影的准确度。对于航空地图,他们使用 Lambert Conformal Conic 投影,这意味着距离仅在锥体切割地球球体的两个纬度上准确。但如果近似值足够好,您可能不需要准确度。

对于转换,一海里等于 1.852 公里。如果我算术正确(不能保证,我已经 70 多岁了),这意味着一米等于(除非你非常靠近两极)纬度 0.0000009 度。它也等于赤道上的 0.0000009 度经度。如果您不在赤道,请将 0.0000009 除以纬度的余弦得到经度。

因此,在 45 度纬度的 1000 米半径圆意味着 0.0009 度纬度和 0.0009/0.707 度经度的半径。大约当然。

所有这些都来自记忆,所以请谨慎对待。如果你真的想参与,谷歌地理方程之类的。

【讨论】:

【参考方案3】:

查看http://trac.osgeo.org/proj/wiki/GeodesicCalculations。根据您需要的准确性,这可能会变得相当复杂,因此您最好从一些现有代码开始。

【讨论】:

以上是关于将距离转换为坐标[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将地图坐标转换为坐标系

在 WP8 中从距离转换为地理坐标

如何将 lon/lat 坐标转换为地球表面上 N-E 米的距离?

球坐标转换的疑惑

经纬度与距离的换算

GPS已知首尾坐标 如何求距离