如何查找GPS坐标是否位于特定道路上



有没有办法获取一个地区的所有道路,然后找出GPS坐标是否在特定道路上。类似于:

all_driveable_road_in_NY = [id1, id2, id3, ..., idn] //Where idi represents the road number i
gps_coordj = [lat1, lat2]
for p in range(0, len(all_driveable_road_in_NY):
if gps_coordj on road all_driveable_road_in_NY[p]:
print("gps on road : " + all_driveable_road_in_NY[p])

使用openstreetmap,人类怎么能在python中做到这一点
欢迎任何提示
谢谢

按道路名称进行线性搜索不适用于此问题。例如,我们不需要搜索布朗克斯的所有道路就可以在曼哈顿找到一个位置。而是交换搜索条件。

假设我们有一个大的(道路,lat-long(数据库,对应于每x米每条道路上的一个点。每条道路都有许多数据点。我们可以搜索最近的位置,而不是搜索所有现有的道路。任何数据库都可以为这些点建立索引,以实现更快的搜索,可能会使用某种树来进行O(log(n((搜索,而不是O(n(。

这和你在字典里搜索单词时使用的技巧是一样的(比如书。好吧,也许你只需要使用谷歌,但听我说完(。要找到"你好",你会先把书打开一半,然后看到你在"R"。现在你知道你只需要搜索书的前半部分,而不是整本书。同样,我们对lat、long点进行排序,以帮助我们更快地进行搜索。

除非您正在运行此数据库,否则它需要得到API的支持。这听起来像是一个常见的用例,所以它很可能是受支持的。

最新更新