过滤靠近路线的 POI

Filter POIs that are close to a route

我有一个兴趣点列表(例如汽车休息区)。

用户选择起点和终点。 这会生成一条路线。

  1. 我如何以编程方式过滤靠近该路线(例如距道路 50 米)的 POI?
  2. Google Maps SDKOSRM 可以提供此功能吗?

谢谢, 尼克

1。你必须找出一个兴趣点到道路的距离。

为了实现这一点,您必须以数学方式存储您的道路:

  • 你可以采样道路上的等距点并将它们存储在一个数组中(更实用,不太精确)然后计算POI与数组中每个点的距离,然后保存次要结果并重复整个每个兴趣点的处理。
  • 您可以在函数中存储道路(越来越复杂,但更精确)。现在您有了这个功能,您可以计算与您的 POI 的相同距离,取最小值并对所有 POI 重复。

2。 Google Distance Matrix 其实可以做到这一点

使用 this Api 你可以计算距离到 2500 个起点 * 目的地点。 结果会给你一个行数组,每行对应

to an origin, and each element within that row corresponds to a pairing of the origin with a destination value.

请求示例:

https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins=32.777211,35.021250&destinations=32.778663,35.015757&key=YOURAPIKEY

这对您的目标非常有用,因为可以让您指定多个点来计算距离。