我有带有纬度和经度等的表名,现在我想在 mysql 查询中以半径获取数据?

Posted

技术标签:

【中文标题】我有带有纬度和经度等的表名,现在我想在 mysql 查询中以半径获取数据?【英文标题】:I have table name with latitude and longitude and so on, now i want to get data with in radius in mysql query? 【发布时间】:2016-10-01 11:35:53 【问题描述】:

我有带有纬度和经度等的表名,现在我想在 mysql 查询中以半径获取数据,例如保存一些带有纬度和经度的数据以及一些关于位置的详细信息,现在我想靠近周围的地方一公里还有其他方法可以得到吗?

【问题讨论】:

研究使用Haversine formula。如果您打算在生产环境中执行此查询,那么您可能还需要考虑在数据库中使用地理空间分区。 【参考方案1】:
SELECT * FROM (SELECT * (6367*acos(cos(radians(input_lat))
   *cos(radians(database_latitude_col))*COS(radians(database_longitude_col)-radians(input_long))
   +SIN(radians(input_lat))*SIN(radians(database_latitude_col))))
   AS "distance" FROM table_name) distance where
   distance < your_distance;

【讨论】:

以上是关于我有带有纬度和经度等的表名,现在我想在 mysql 查询中以半径获取数据?的主要内容,如果未能解决你的问题,请参考以下文章

mysql存储地图经纬度的表怎么设计?

如何将纬度/经度对转换为 PostGIS 地理类型?

从邮政编码表(MySql)获取纬度和经度并加入另一个表

如何在sql server中通过给定的邮政编码和以英里为单位的半径从附近的表中获取所有其他邮政编码或(纬度和经度)?

如何使用 xamarin 表单将经度和纬度设置为图片?

如何使用 php 和 mysql 使用纬度和经度进行几何搜索