通过给定的经度和纬度查找在数据库中注册的位置 - Laravel
Find location registered in database by the given longitude and latitude - Laravel
我从事电子商务工作,我在理解通过给定的 (longitude - latitude) 查找位置并获取匹配位置的方法时遇到了问题来自数据库中的位置table。
我有 locations table 来存储我所在国家/地区的所有城市。
例如:
city_name
费用
lng
纬度
巴比伦
12
47.0983
31.90043
巴格达。
5
47.0983
31.90043
.......
...
.......
......
the above lng & lat are fake.
我想要的是:
当用户 select 他在移动应用的地图上的位置时,该应用会通过API 端点:
例如/locations?lng=xxx&lat=xxx
然后服务器(Laravel App)应该根据给定的 locations table 检查(lng-lat)以找到用户的城市积分。
抱歉,如果我不能很好地解释,但这是应该的,而不是检查最近的位置或类似的东西。
根据你的解释,我可以理解你想找到离用户位置最近的城市。你可以在这里使用距离公式
=ACOS( SIN(lat1 * PI()/180) * SIN(lat2 * PI()/180) + COS(lat1 * PI()/180) * COS(lat2 * PI()/180 ) * COS(lon2 * PI()/180-lon1 * PI()/180) ) * 6371000
您可以使用此公式将纬度、经度转换为距离,然后根据距离对数据进行排序。
或者如果您只想根据给定的纬度、经度查询数据,那么您可以简单地 运行 select 查询您的 table。要确保的一件事是,您必须存储小数点后 8 位的经纬度才能找到准确的结果。
我从事电子商务工作,我在理解通过给定的 (longitude - latitude) 查找位置并获取匹配位置的方法时遇到了问题来自数据库中的位置table。
我有 locations table 来存储我所在国家/地区的所有城市。
例如:
city_name | 费用 | lng | 纬度 |
---|---|---|---|
巴比伦 | 12 | 47.0983 | 31.90043 |
巴格达。 | 5 | 47.0983 | 31.90043 |
....... | ... | ....... | ...... |
the above lng & lat are fake.
我想要的是:
当用户 select 他在移动应用的地图上的位置时,该应用会通过API 端点:
例如/locations?lng=xxx&lat=xxx
然后服务器(Laravel App)应该根据给定的 locations table 检查(lng-lat)以找到用户的城市积分。
抱歉,如果我不能很好地解释,但这是应该的,而不是检查最近的位置或类似的东西。
根据你的解释,我可以理解你想找到离用户位置最近的城市。你可以在这里使用距离公式
=ACOS( SIN(lat1 * PI()/180) * SIN(lat2 * PI()/180) + COS(lat1 * PI()/180) * COS(lat2 * PI()/180 ) * COS(lon2 * PI()/180-lon1 * PI()/180) ) * 6371000
您可以使用此公式将纬度、经度转换为距离,然后根据距离对数据进行排序。
或者如果您只想根据给定的纬度、经度查询数据,那么您可以简单地 运行 select 查询您的 table。要确保的一件事是,您必须存储小数点后 8 位的经纬度才能找到准确的结果。