在数据库中根据经纬度查找数据中所有附近的经纬度点
2017-05-27 09:57
567 查看
在数据库中根据经纬度查找数据中所有附近的经纬度点
根据当前所在的坐标点也即经纬度,查找数据库中附近5公里或10公里附近的所有信息的实现,经过查找资料,原来是我高二学的,就是求弦长,数学忘完了,没想到数学还这么有用,数学啊 真是用途太大了。
用到的什么余弦,角度、弧度全忘完了,
但是通过找资料,还是实现了,误差相对还是比较小的,我在mssql数据库中实现的,具体如下:
mssql函数:
ALTER FUNCTION [GetDistance]
(
@GPSLng DECIMAL(12,6),
@GPSLat DECIMAL(12,6),
@Lng DECIMAL(12,6),
@Lat DECIMAL(12,6)
)
RETURNS DECIMAL(12,4)
AS
BEGIN
DECLARE @result DECIMAL(12,4)
SELECT @result=6371.004*ACOS(SIN(@GPSLat/180*PI())*SIN(@Lat/180*PI())+COS(@GPSLat/180*PI())*COS(@Lat/180*PI())*COS((@GPSLng-@Lng)/180*PI()))
RETURN @result
END
sql查询语句:
SELECT *,GetDistance(某一点的经度,某一点的纬度,数据库中经度,数据库中纬度)AS dis FROM 表名 dis<5
查找数据库中5公里内的记录
注:
6371.004 地球半径
6371.004*ACOS(SIN(@GPSLat/180*PI())*SIN(@Lat/180*PI())+COS(@GPSLat/180*PI())*COS(@Lat/180*PI())*COS((@GPSLng-@Lng)/180*PI())) 计算公式 可查球面弧长计算公式的详细解释
根据当前所在的坐标点也即经纬度,查找数据库中附近5公里或10公里附近的所有信息的实现,经过查找资料,原来是我高二学的,就是求弦长,数学忘完了,没想到数学还这么有用,数学啊 真是用途太大了。
用到的什么余弦,角度、弧度全忘完了,
但是通过找资料,还是实现了,误差相对还是比较小的,我在mssql数据库中实现的,具体如下:
mssql函数:
ALTER FUNCTION [GetDistance]
(
@GPSLng DECIMAL(12,6),
@GPSLat DECIMAL(12,6),
@Lng DECIMAL(12,6),
@Lat DECIMAL(12,6)
)
RETURNS DECIMAL(12,4)
AS
BEGIN
DECLARE @result DECIMAL(12,4)
SELECT @result=6371.004*ACOS(SIN(@GPSLat/180*PI())*SIN(@Lat/180*PI())+COS(@GPSLat/180*PI())*COS(@Lat/180*PI())*COS((@GPSLng-@Lng)/180*PI()))
RETURN @result
END
sql查询语句:
SELECT *,GetDistance(某一点的经度,某一点的纬度,数据库中经度,数据库中纬度)AS dis FROM 表名 dis<5
查找数据库中5公里内的记录
注:
6371.004 地球半径
6371.004*ACOS(SIN(@GPSLat/180*PI())*SIN(@Lat/180*PI())+COS(@GPSLat/180*PI())*COS(@Lat/180*PI())*COS((@GPSLng-@Lng)/180*PI())) 计算公式 可查球面弧长计算公式的详细解释
相关文章推荐
- 在数据库中根据经纬度查找数据中所有附近的经纬度点
- 在数据库中根据经纬度查找数据中所有附近的经纬度点
- Java---查找数据库的smt_lampcontroller表中,行号为奇数的所有数据的id号,报错以及解决办法
- SQL查找数据库中所有没有主键的数据表脚本
- PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
- 根据从redis缓存的数据查询出来,在从数据库中取出所有的数据,俩个数据进行比较,去掉重复,剩下库中新插入的数据,取出新数据,然后把redis中的缓存数据清空把从数据库中查出来的所有数据放到redis缓存中
- php从PostgreSQL 数据库检索数据,实现分页显示以及根据条件查找数据
- 根据经纬度获取附近的数据、和与当前经纬度的距离
- tpshop商城根据用户坐标,向数据库查找附近的商家
- 根据经纬度查找附近的人计算公式
- SQL查找数据库中所有没有主键的数据表脚本
- 根据经纬度获取附近的数据、和与当前经纬度的距离
- mysql根据字段查询数据库中的存在该字段的所有数据表
- 根据经纬度和公里范围检索附近所有资源
- SQL查找数据库中所有没有主键的数据表脚本
- 根据经纬度(lat,lng)查找附近的地点(续)
- SQL查找数据库中所有没有主键的数据表脚本
- 查找数据库中含有指定数据的所有表名和字段
- tpshop商城根据用户坐标,向数据库查找附近的商家
- 一个函数抓取代谢组学权威数据库HMDB的所有表格数据