我的问题很简单,一句话就能理解:
有没有一种方法、工具等使用谷歌地图来覆盖低于特定旅行时间的所有表面?
我希望这个问题很清楚,但我在网上找不到任何相关的东西。
如果你有任何信息,我会接受的!
这是我的意思,用一个例子来说明:
我正在寻找一个新的住处。我知道我办公室的确切地址。在这种情况下,我将能够在谷歌地图上覆盖在一定旅行时间下的表面(假设开车 30 分钟)。我们将在高速公路周围涂上长长的表面(因为你会变得更快),并在道路周围涂上颜色。
我的问题很简单,一句话就能理解:
有没有一种方法、工具等使用谷歌地图来覆盖低于特定旅行时间的所有表面?
我希望这个问题很清楚,但我在网上找不到任何相关的东西。
如果你有任何信息,我会接受的!
这是我的意思,用一个例子来说明:
我正在寻找一个新的住处。我知道我办公室的确切地址。在这种情况下,我将能够在谷歌地图上覆盖在一定旅行时间下的表面(假设开车 30 分钟)。我们将在高速公路周围涂上长长的表面(因为你会变得更快),并在道路周围涂上颜色。
我认为您正在寻找类似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 命令获取纬度和经度信息并查找点之间的行驶距离,以及通过驾驶、步行或使用公共交通工具行驶该距离所需的时间。
除了@BioGeek 回答中的那些之外,还有更多:
诺基亚 Here Maps API可以为您提供输出的确切形状。他们称之为基于时间的等值线。请参阅此处:请求基于时间的等值线
对于 10 分钟以下的旅行时间,可在此地址获得 Isoscope。
这看起来也很有希望:Route360
更新:
Route360可以在以下地方免费使用:
非洲
奥地利
澳大利亚和新西兰
不列颠诸岛
不列颠哥伦比亚省
捷克共和国
丹麦
法国
德国
意大利
马来西亚、新加坡和文莱
墨西哥
挪威
葡萄牙
西班牙
瑞典
瑞士
美国
我认为您正在寻找Google Distance Matrix API。它返回的不是路线,而是每对起点和终点的持续时间和距离。它的使用限制为每 10 秒 100 个元素。
因此,您可以对与所需旅行时间相匹配的距离进行有根据的猜测,在该半径的圆上选择六个或八个均匀分布的点,并查询相应的持续时间。然后根据结果细化距离并计算中间点。这样,您可以在几次迭代中获得(相当粗糙的)地图。
我认为没有一种简单的方法可以做到这一点,但这里有一个想法:
您需要首先获取起始位置的长/纬度坐标。然后,您需要计算出该起始位置周围的 50 个坐标,即距该起始位置 1 公里(此处的答案可以提供帮助)。然后,您需要遍历这些点中的每一个,并使用Google Driving Directions API询问从您的起始位置到达那里的行驶时间。
然后您需要再次遍历这些点以找到低于允许旅行时间的点(例如您的问题中的 30 分钟),将这些点移动一公里左右(与该点最初移动的方向相同)开始位置)并重复行驶时间请求,直到所有时间都超过允许的行驶时间。最后,您会得到 50 个坐标,您可以使用Google Javascript API 映射多边形将其作为多边形绘制到 Google 地图图像上。
此方法需要向 Google 提出大量请求,因此您需要考虑 Google 对您一天可以执行的请求数量的限制。
您可以使用GraphHopper Directions API - 这个 API 部分也是开源的。
由于我们最近添加了公共交通和此功能,因此它目前不能一起使用。但这是计划好的,在此之前您可以享受道路网络等时线:)
免责声明:我是 GraphHopper 的创始人之一。
您可以在当前位置周围画一个圆圈,并以每 X 度的角度检查道路。
另一个想法是使用等高线图和等值线。