我已经阅读了很多关于使用Lat和Long计算两点位置之间距离的最佳方法(如谷歌地图)。
我已经非常接近我提出的MySQL查询解决方案(link)这个问题,我读过有关GeoTools PHP(link GitHub)和GeoTools Laravel({{3} })。
就我个人而言,我的目前职位是这样的:
37.754782, -122.425240
我在MySQL中以相同的格式(大约1000K)存储了很多点,我需要获得距我当前位置最近的100个点(以米或公里为单位)。
我想为Laravel REST API和MySQL找到一个正确的解决方案,任何想法?有什么建议吗?
谢谢!
答案 0 :(得分:1)
最简单的方法是为模型创建查询范围,其中存储有关位置的信息(或写行查询),这将使用计算内容的MySQL存储过程(在您的示例中使用Sphinx搜索)。
create REST API in Laravel并不难以获取点坐标并使用此范围来查找并返回最近POI的结果。
答案 1 :(得分:0)
我正在研究相同的事情并使用POINT数据类型来存储Lat Lng的位置。然后我使用distance_sphare函数来获得距离。下面是mySQL 5.7中此函数的代码
ST_DISTANCE_SPHERE(mysql_column_lat_lng, POINT($lat $lng))
此功能将以米为单位返回距离,但问题是它将返回位移(两点之间的最短距离,总是一条直线)。
使用上述方法无法获得行驶距离,您需要调用google map api才能获得行驶距离。