我在地图上有一些目标点和一个源位置。我需要找到离源头最近的目标点。这里的诀窍是"最近的"是指最短的路线。我不能用简单的乌鸦飞距离。
这本质上是一个一对多路由问题。我可以通过为每对点运行路由API调用来获得答案,但那太慢了,会增加API的使用。
- 是否有一种方法可以使用谷歌地图API的单个请求(我可以在必要时支付)?
- 如果是,那么对点数,请求频率等的限制是什么?
- 如果没有,是否有其他服务可以完成?
- 说我有很多点(千)。是否有一种方法可以上传它们,并且只在我的请求中使用源位置?
你应该看看距离矩阵服务
您可以指定起点和终点(甚至是中间路点),然后按路线以公里/英里为单位获得距离。
回答您的问题:
是否有一种方法可以使用谷歌地图API(我可以支付它,如果有必要)单个请求做到这一点
是的,你可以,只要使用下面给出的服务
如果是,那么点的数量、请求频率等的限制是什么?
引用使用限制和要求:
距离矩阵服务有以下使用限制:
请求也受到速率限制。如果在特定时间段内请求的元素太多,将返回OVER_QUERY_LIMIT响应代码。
- 每个请求最多25个起点或25个目的地;和
- 每个请求最多100个元素(起始点乘以目的地点)。
说我有很多点(成千上万)。是否有一种方法可以上传它们,并且只在我的请求中使用源位置?
我不确定你真正想要的是什么,但你可以定义一个点为"源位置",然后加载它(从SQL, KML等…),然后加载目标,并调用服务来找到哪个是最近的。