android 查找两点之间的距离(纬度/经度)

kuuvgm7e  于 11个月前  发布在  Android
关注(0)|答案(3)|浏览(99)

我对Android开发完全陌生。我在MySQL中有数千个地方的纬度/经度。我想学习的是,如何根据设备位置找到最近的10个地方。
我知道MySQL GeoSpatial索引,使用它我可以找到相对于设备坐标最近的位置。但这不是用户必须旅行的实际距离,对吗?实际路线可能比位移更长。
我可以使用谷歌距离矩阵API获得基于实际路线的距离,但如何以及什么点我会传递到谷歌API?如果我传递1个起点和10个目的地,其中说8个是200米远,2个是更长的方式,我会错过其他2个条目,应该已经显示在清单中。
请建议做这件事的更好方法是什么?

guicsvcw

guicsvcw1#

尝试this link。它显示最近的位置并检索列表中最近位置的地址
如果不使用这个,你将需要使用更多的数学计算,这将是困难的。

kb5ga3dv

kb5ga3dv2#

在你的情况下没有简单的解决方案。我能想到的最好的建议是你提供10个以上最近点的查询,让我们说15和得到10个最好的答案出这15个结果.你将需要优化请求的数量(12或17就够了)你得到最好的结果。请求的数量越大,准确结果的概率越高,但性能越低。所以你需要找到一个适当的平衡点。除此之外,我想不出其他合理的解决办法。

sqyvllje

sqyvllje3#

你很少把这些东西建立在实际路线的基础上。我有一个消费者GPS设备-它给我的路线总是比它在POI屏幕上列出的距离多几英里,因为它只是在那里做直线距离。实际上计算路线将是非常昂贵的-注意,当你点击谷歌Map上的导航按钮时,需要几秒钟才能做一个单一的路线查找。所以我会说只要使用共同-协调,这是其他人做的。

相关问题