我有一个数据库,其中包含英国每条道路的所有航点。
我正在尝试构建一个导航应用程序,给定用户的纬度和经度,它将从数据库中计算最近的道路并显示名称
数据库的 JSON 表示片段
[ { "NAME": "Trinity Road", "coordinates": [ [ 1.7595267, 52.4778475 ], [ 1.7587864, 52.4774 ] ] }, { "NAME": "Wilde Street", "coordinates": [ [ 1.7593497, 52.4795499 ], [ 1.7594677, 52.4795041 ], [ 1.7598164, 52.4793277 ] ] } ]
我遇到的问题是正确找到最近的道路。我找不到任何合适的算法,给定一个点会找到最近的路径/线
它不能简单地比较坐标,因为最近的道路可能在 2 个路点之间(排除“最近点对问题”)。
有人可以建议一个合适的算法吗?
我能想到的最佳解决方案是加权网格/矩阵,其中道路的权重取决于它们与用户的接近程度,然后选择用户周围价值最高的道路(但这可能很昂贵)。
我想在不使用诸如 google-maps 之类的 web api 或 PostGIS(必须使用 sqlite - 移动应用程序)的情况下解决这个问题