我有带有纬度和经度等的表名,现在我想在 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 查询中以半径获取数据?的主要内容,如果未能解决你的问题,请参考以下文章