将地图坐标转换为坐标系
Posted
技术标签:
【中文标题】将地图坐标转换为坐标系【英文标题】:Convert Map Coordinates to Coordinate System 【发布时间】:2013-07-15 14:58:57 【问题描述】:我有一个地址/GPS坐标列表,我需要将其转换为坐标系,以便点之间的距离不等于航线距离,而是点之间的旅行距离(时间) .
所以我需要获取所有地址之间的旅行时间(例如通过谷歌地图 API),然后以某种方式使用这些数据创建一个坐标系。
所以我的第一个问题是:如果我有 50 个地址,是否有可能获得所有地址之间的旅行时间,或者这需要太长时间?我的意思是它不需要通过谷歌地图API,我也可以通过离线地图数据来完成。
还有第二个问题:如何创建这样的坐标系?这个问题是否有某种名称,所以我可以用谷歌搜索它?我只是不知道要搜索什么...
【问题讨论】:
我不明白一件事。问题第一句中所说的坐标系是什么? GPS 坐标确实已经是一个坐标系。 抱歉,这很难解释。 GPS坐标之间的距离是航线距离,对吧?但我想转换坐标,使它们之间的距离不是航线而是旅行时间。例如纽约和华盛顿特区之间的 GPS 坐标距离将是 213(英里),但我想转换坐标,以便距离为 223(分钟)。希望现在变得更清楚。 现在很清楚了。如果您有 50 个城市(点)并且您想计算所有城市(点)之间的距离,那么它基本上是对虚构函数 getDistanceInMinutes(point a, point b) 的 1225 次调用。国际海事组织没有那么多。很遗憾,我没有从您的第二个问题中看到问题。 我不确定您的总体目标,但 Google Maps API 有一个特定的Google Directions API,它允许您使用格式正确的 URL 查询和产生 JSON 结果的参数发出请求格式,解析起来并不难。 【参考方案1】:如果我正确理解了这个问题,那么有 N 个地理位置的时间距离是已知的。目的是绘制一张二维地图,纸上的距离代表行驶距离。
这是一种有趣的方法,因为这是我们通常感知距离的方式,这样制作的地图会比枯燥的普通地图更直观。
不幸的是,这个任务在一般情况下是无法解决的。为了证明这一点,我将展示一个只有四点的无法解决的案例。
有两个相邻的城市 A 和 B 在这些城市之间有三个郊区 C 和 D 只有四条路,在城市和郊区之间(A-C、A-D、B-C、B-D) 每条路都一样长,车程15分钟因此,从城市 A 到城市 B 需要 30 分钟(通过 C 或通过 D)。从任一郊区到任一城市都需要 15 分钟,郊区 C 和 D 之间的旅行需要 30 分钟(经 A 或经 B)。
现在,因为所有道路都需要相同的时间,所以点 A、C、B 和 D 必须形成一个所有边都等长(15 分钟)的平行四边形。对角线 AB 和 CD 都应该有两倍的长度,因为这些距离都是 30 分钟。这是不可能的,因为如果对角线长度相等,则长度为 sqrt(2) x 15 分钟,我们有一个正方形。
【讨论】:
以上是关于将地图坐标转换为坐标系的主要内容,如果未能解决你的问题,请参考以下文章