使用Google Maps API查找最近的点

4

我在地图上有许多目标点和一个源位置。我需要找到最接近源位置的目标点。这里的关键是,“最接近”意味着最短路线。我不能使用简单的直线距离。

本质上,这是一个一对多的路径规划问题。我可以通过为每对点运行路径规划API调用来获取答案,但这会太慢并且会消耗大量API使用次数。

  1. 是否有办法使用Google Maps API进行单个请求即可完成(如果必要,我愿意付费)?
  2. 如果有,那么有关点数、请求频率等的限制是什么?
  3. 如果没有,还有其他可以实现的服务吗?
  4. 假设我有很多点(成千上万)。是否有一种方法可以上传它们并仅使用源位置进行请求?
1个回答

4
你应该查看距离矩阵服务。你可以指定起点和终点(甚至中间途经点),然后通过路线获取公里数/英里数。
回答你的问题:
“是否有一种方法可以使用Google Maps API进行单个请求(如果需要,我可以付费)?” 是的,只需使用下面提供的服务。
“如果是,则有关点数、请求频率等方面的限制是什么?” 引用使用限制和要求
距离矩阵服务的以下使用限制适用: - 每个请求最多有25个起始点或25个目标点; - 每个请求最多有100个元素(起点乘以目标点)。 此外,请求也受到速率限制。如果在某个时间段内请求了太多元素,则会返回OVER_QUERY_LIMIT响应代码。
“假设我有很多点(数千个)。是否有一种方法可以上传它们并仅在我的请求中使用源位置?” 我不确定你真正想要什么,但你可以将一个点定义为“源位置”,然后从SQL、KML等加载它,然后加载目标并调用服务找到最近的一个。

谢谢您的回答。不幸的是,这些限制太严了。我有数千个点。第一个问题是它超出了限制。另一个问题是,我不想每次在请求中传递数千个点。我希望将其上传到Google系统并通过id或其他方式引用整个点组。存储需要由Google管理和使用。 - Rodion Degtyar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接