我对Android开发完全陌生。在MySQL中我有数以千计的纬度/经度。我想要学习的是,如何根据设备位置找出最近的10个位置。
我知道MySQL GeoSpatial索引,使用它我可以找到与设备坐标最接近的位置。但这不是用户旅行的实际距离,对吧?实际路线可能比位移长。
我可以使用Google Distance Matrix API根据实际路线获取距离,但我将如何以及将哪些内容传递给Google API?如果我通过1个原点和10个目的地,其中8个距离200米,2个更长,我会错过应该在列表中显示的其他2个条目。
请建议更好的方法是什么?
答案 0 :(得分:1)
答案 1 :(得分:1)
在您的情况下没有简单的解决方案。我能想到的最佳建议是为你提供超过10个最近点的查询,比如15,从这15个结果中得到10个最佳答案。您需要优化请求数量(可能12或17就足够了),以获得最佳结果。请求数越多,准确结果的概率越高,但性能越低。所以你需要找到适当的平衡。除此之外我无法想到任何其他合理的解决方案。
答案 2 :(得分:0)
你很少将这些东西建在实际路线上。我有一个消费者GPS设备 - 它给我的路线总是比它在POI屏幕中列出的距离多几英里,因为它只是在那里做直线距离。实际上计算路线会非常昂贵 - 请注意,当您点击谷歌地图上的导航按钮时,需要几秒钟才能进行单一路径查找。所以我说只是使用坐标,这是其他人所做的。