2 yzsunlight yzsunlight 于 2016.09.23 12:07 提问

求两个经纬度范围内的数据 1C

已知可视区域内的【可视区域左下角】至 【可视区域右上角】的经纬度
求这个区域内地经纬度SQL语句怎么写。 目前用的是sqlserver数据库

1个回答

feng1790291543
feng1790291543   Ds   Rxr 2016.09.23 14:50

参考:
http://blog.csdn.net/blade2001/article/details/50512081
http://www.tot.name/html/20141224/20141224211233.htm

这里用到的算法和地球半径等数据均来自网络,此文只作整理记录。

地球半径值采用赤道半径 6378137.0米,这是1980年的国际标准数据。
下面是在数据库中写的自定义函数,传入两个经纬度点的数据,共4个参数,返回以米为单位的两点之间的距离

CREATE FUNCTION f_GetDistance,
@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 = 6378137.0*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
GO


Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
根据当前经纬度 获取一定距离范围内的两个经纬度的点值 经纬度最大最小值
<?php //当前经纬度 $Lat = '30.01254012452224'; //纬度 $Lng = '121.01244544525456456478797';//经度 $range = 180 / pi() * 1 / 6372.797; //里面的 1 就代表搜索 1km 之内,单位km $lngR = $range / cos($myLat * pi() / 180
根据经纬度判断一个点是否在一个矩形范围内
在实际应用中经常会遇到这样一种需求,由最大最小的经纬度给出一个矩形范围,然后判断一个点是否在这个范围内部,由于经纬度有负有正,而且经度跨越正负180度后变号并且反向增减,一两步计算不出来,下面给出一种计算方案,其中在经度的处理上,只有劣弧计入范围内部,也就是只有小于半球面的那部分算作区域内部,如果想算超过180的大面积,请求反操作。 下面是主要方法: /**      *
使用scala计算两个Gps点之间的距离
通常进行轨迹数据的挖掘,都会用到经纬度转换距离。特别是Spark需要scala语言编写,这方面的轮子比较少。object getDistance{ def main(args: Array[String]) { val lon1 = 108.956769;val lat1 = 34.229644 val lon2 = 108.958830;val lat2 =34
通过两个位置的经纬度坐标计算距离(Java版本)
目前移动领域的项目越来越多,最近自己带领团队也着手移动端项目的开发,在开发中经常涉及到地理位置的业务,获取移动端客户GPS坐标位置来计算距离,一开始使用的是百度地图API来计算,发现百度API只支持50位置坐标计算,对于真正的业务上的位置点,这远远不够,后来谷歌提供一种计算公式,可以很快的计算出两个坐标之间的距离,这在一定程度上帮助我们快速的计算出距离,感觉很不错,将代码分享给有需要的同学。 以
C#以中心点经纬度和范围半径为基准计算矩形四个顶点的经纬度
最近要做附近的人查询算法,在网上找了相关示例,发现代码有些问题,经过我整理测试,终于完成该算法,特此记录。 1.经纬度坐标实例,方便实例化和传值。 /// /// 经纬度坐标 /// public class Degree { /// /// 构造函数 /// /// 经度
使用SQL语句查询经纬度之间的距离和一定范围内的数据
declare @a decimal(18,7) --经度 declare @b decimal(18,7) --维度 set @a=119.921001 set @b=35.943285 declare @c decimal(18,7) set @c=6371 --地球半径 select *,sqrt( ( ((@a-longitude)*PI()*@c*cos((
PHP根据自己的经纬度计算5公里范围内的全部经纬度
PHP根据自己的经纬度计算5公里范围内的全部经纬度    /**      *计算某个经纬度的周围某段距离的正方形的四个点      *@param lng float 经度      *@param lat float 纬度      *@param distance float 该点所在圆的半径,该圆与此正方形内切,默认值为0.5千米      *@return array 正方
Java-辗转相除法(求最小公倍数与最大公约数)
最大公约数与最小公倍数Time Limit: 1000 ms Memory Limit: 65536 KiBSubmit StatisticProblem Description输入两个正整数,求它们的最大公约数与最小公倍数。Input输入两个正整数,两个整数之间用空格分开。数据保证在 int 范围内。Output第一行输出最大公约数;第二行输出最小公倍数。答案保证在 int 范围内。Sample...
mysql经纬度 某半径长度 内查询数据
x,y在setParameter是Double类型;x,y在同一列里  用空格分开时;SUBSTRING_INDEX(字符串,分割字符串字符,计数) 计数为正时,从左往右第N个分隔符左边全部内容,负数从右开始第N个分隔符的右边全部内容,可以嵌套选取中间的字符串。经纬度+1是111km;这个方法画的是圆; sb.append(" SELECT * FROM 经纬表 where SUBSTRIN
LBS中从数据库查询某经纬度2KM范围内的数据
MySQL性能调优 – 使用更为快速的算法进行距离计算 最近遇到了一个问题,通过不断的尝试最终将某句原本占据近1秒的查询优化到了0.01秒,效率提高了100倍. 问题是这样的,有一张存放用户居住地点经纬度信息的MySQL数据表,表结构可以简化 为:id(int),longitude(long),latitude()long. 而业务系统中有一个功能是查找离某个用户最近的其余