45

我的问题很简单,一句话就能理解:

有没有一种方法、工具等使用谷歌地图来覆盖低于特定旅行时间的所有表面?

我希望这个问题很清楚,但我在网上找不到任何相关的东西。

如果你有任何信息,我会接受的!

这是我的意思,用一个例子来说明:

我正在寻找一个新的住处。我知道我办公室的确切地址。在这种情况下,我将能够在谷歌地图上覆盖在一定旅行时间下的表面(假设开车 30 分钟)。我们将在高速公路周围涂上长长的表面(因为你会变得更快),并在道路周围涂上颜色。

4

6 回答 6

37

我认为您正在寻找类似Mapnificient的东西:它向您显示了在给定时间内您可以通过公共交通工具到达的区域(视频)。

在此处输入图像描述

一个提供更多选择的类似网站是How Far Can I Travel。在这里,您可以选择输入您的行进速度和行进时间或距离。或者,您还可以指定您希望结果的准确程度。

在此处输入图像描述

现在,如何自己创建这样的示例?请参阅此相关问题,其中接受的答案逐步解释了如何从 Google Maps API 获取旅行时间数据

最后,您可以花 8.75 美元购买Adam Ozimek 和 Daniel Miles撰写的Stata utility for geocoding and generate travel time and travel distance informationtraveltime文章,该文章描述了一个使用 Google Maps 为数据提供空间信息的命令。

traveltime 命令获取纬度和经度信息并查找点之间的行驶距离,以及通过驾驶、步行或使用公共交通工具行驶该距离所需的时间。

于 2012-02-29T16:27:54.073 回答
5

除了@BioGeek 回答中的那些之外,还有更多:

诺基亚 Here Maps API可以为您提供输出的确切形状。他们称之为基于时间的等值线。请参阅此处:请求基于时间的等值线

在此处输入图像描述

对于 10 分钟以下的旅行时间,可在此地址获得 Isoscope。

这看起来也很有希望:Route360

更新:

Route360可以在以下地方免费使用:

  • 非洲

  • 奥地利

  • 澳大利亚和新西兰

  • 不列颠诸岛

  • 不列颠哥伦比亚省

  • 捷克共和国

  • 丹麦

  • 法国

  • 德国

  • 意大利

  • 马来西亚、新加坡和文莱

  • 墨西哥

  • 挪威

  • 葡萄牙

  • 西班牙

  • 瑞典

  • 瑞士

  • 美国

于 2015-04-25T00:32:49.257 回答
4

我认为您正在寻找Google Distance Matrix API。它返回的不是路线,而是每对起点和终点的持续时间和距离。它的使用限制为每 10 秒 100 个元素。

因此,您可以对与所需旅行时间相匹配的距离进行有根据的猜测,在该半径的圆上选择六个或八个均匀分布的点,并查询相应的持续时间。然后根据结果细化距离并计算中间点。这样,您可以在几次迭代中获得(相当粗糙的)地图。

于 2012-02-29T15:21:24.193 回答
2

我认为没有一种简单的方法可以做到这一点,但这里有一个想法:

您需要首先获取起始位置的长/纬度坐标。然后,您需要计算出该起始位置周围的 50 个坐标,即距该起始位置 1 公里(此处的答案可以提供帮助)。然后,您需要遍历这些点中的每一个,并使用Google Driving Directions API询问从您的起始位置到达那里的行驶时间。

然后您需要再次遍历这些点以找到低于允许旅行时间的点(例如您的问题中的 30 分钟),将这些点移动一公里左右(与该点最初移动的方向相同)开始位置)并重复行驶时间请求,直到所有时间都超过允许的行驶时间。最后,您会得到 50 个坐标,您可以使用Google Javascript API 映射多边形将其作为多边形绘制到 Google 地图图像上。

此方法需要向 Google 提出大量请求,因此您需要考虑 Google 对您一天可以执行的请求数量的限制。

于 2012-02-29T10:06:03.193 回答
2

您可以使用GraphHopper Directions API - 这个 API 部分也是开源的。

由于我们最近添加了公共交通和此功能,因此它目前不能一起使用。但这是计划好的,在此之前您可以享受道路网络等时线:)

免责声明:我是 GraphHopper 的创始人之一。

在此处输入图像描述

于 2018-01-03T00:13:56.673 回答
1

您可以在当前位置周围画一个圆圈,并以每 X 度的角度检查道路。

另一个想法是使用等高线图和等值线。

于 2012-02-29T14:59:47.593 回答