经纬度计算距离sql
1. sql语句怎么写算坐标经纬度之间的距离我是mysql数据库。 请详细点!谢谢!
给大家一条语句能执行的地方
SELECT id, ( 6371* acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY id LIMIT 20 数据库中查找 距离 37,-122 距离 小于25公里的 经纬度
以前看GOOGLE 地图 API 开发时候的一篇文章里面有 给分 给分
2. sql (mysql)怎么实现查询某一个经纬度周围500米距离的餐馆,数据库存放所有餐馆的经纬度
回答的有点晚,正好我做到相关的项目了,希望能帮到其他人.
餐馆申请时候通过填写的地址取得经纬度存入数据库,下面是查询某个经纬度附近500米的
$user_lat='41.749034'; //传过来的纬度
$user_lng='123.46017';//传过来的经度
$store_mod=db("store"); //数据库
$storelist=$store_mod->query("SELECT
*,ROUND(6378.138*2*ASIN(SQRT(POW(SIN((".$user_lat."*PI()/180-【store_latitude】*PI()/180)/2),2)+COS(".$user_lat."*PI()/180)*COS(【store_latitude】*PI()/180)*POW(SIN((".$user_lng."*PI()/180-【store_longitude】*PI()/180)/2),2)))*1000)
AS distance FROM store HAVING 【搜索条件如 state=1】 distance<【周围距离多少米 如
500】 ORDER BY distance ASC");
var_mp($storelist);
【】sql语句中括号的store_latitude,store_longitude为你数据库存的商家经纬度的字段名,其余的为注释
3. 知道两地经纬度,如何求实地距离
同一经线上1纬度差大约等于111km;同一纬线上1经度差大约等于111×(cos纬度)km。
已知两点经纬度,计算两地直线距离需遵循以下计算:
①将两地的经纬度转换为(x,y)(x',y')的形式计算经纬度的差值;
②计算两地纬度值相差/x-x'/距离,经度值相差/y-y'/距离。
③利用数学中的勾股定理计算两地直线距离。
经度的每一度被分为60分
每一分被分为60秒。一个经度因此一般看上去是这样的:东经23°27′ 30"或西经23°27′ 30"。更精确的经度位置中秒被表示为分的小数,比如:东经23°27.500′,但也有使用度和它的小数的:东经23.45833°。有时西经被写做负数:-23.45833°。但偶尔也有人把东经写为负数,但这相当不常规。
以上内容参考:网络-经纬度
4. sql (mysql)实现查询某一个经纬度周围500米距离的餐馆,数据库存放所有餐馆的经纬度。
mysql两点间距,你也自己弄成函数
公式如下,单位米:
第一点经纬度:lng1 lat1
第二点经纬度:lng2 lat2
round(6378.138*2*asin(sqrt(pow(sin(
(lat1*pi()/180-lat2*pi()/180)/2),2)+cos(lat1*pi()/180)*cos(lat2*pi()/180)*
pow(sin( (lng1*pi()/180-lng2*pi()/180)/2),2)))*1000)
例如:
SELECT store_id,lng,lat,
ROUND(6378.138*2*ASIN(SQRT(POW(SIN((22.299439*PI()/180-lat*PI()/180)/2),2)+COS(22.299439*PI()/180)*COS(lat*PI()/180)*POW(SIN((114.173881*PI()/180-lng*PI()/180)/2),2)))*1000)
AS
juli
FROM store_info
ORDER BY juli DESC
LIMIT 316
5. mysql中怎么根据经纬度计算距离
DROP FUNCTION IF EXISTS func_calcDistance ;
CREATE FUNCTION func_calcDistance(
origLng DECIMAL(20,6), -- 目的地经度
origLat DECIMAL(20,6), -- 目的地纬度
longitude DECIMAL(20,6), -- 当前所在地点经度
latitude DECIMAL(20,6) -- 当前所在地点纬度
)
RETURNS DOUBLE
BEGIN
DECLARE result DOUBLE DEFAULT 0;
SET result = round(6378.138*2*asin(sqrt(pow(sin(
(origLat*pi()/180-latitude*pi()/180)/2),2)+cos(origLat*pi()/180)*cos(latitude*pi()/180)*
pow(sin( (origLng*pi()/180-longitude*pi()/180)/2),2)))*1000);
RETURN result;
END ;
6. 怎么知道经纬度算距离,
北京纬度为39°54′N,马来西亚纬度为1°22′N,则两地纬度差为38°32′,根据纬度相差1度,纬度1秒的长度,地球的子午线总长度大约40008km。
平均:纬度1度 = 大约111km;纬度1分= 大约1.85km;纬度1秒= 大约30.8m。那么距离相差111km的规律,计算得两地南北距离为4281km。
经度分为360度,每15度1个时区,其中0度的叫本初子午线,是第一个进入新一天的地方,然后向西每过1个时区就相差1小时。
例如是早上5点,那么向西一个时区就是早上4点,再过1个时区就是早上3点,依此类推,向东则相反,一直到本初子午线,也就是说本初子午线两侧刚好相差23个小时,从赤道向两级,纬度越来越高。赤道是划分南北两半球的分界线。
经纬度1度=60分=3600秒,这个六十进制是古巴比伦人定制的,我们今天仍然在使用,只要关于角度和圆都是一样。
赤道的纬度为0°,将行星平分为南半球和北半球。纬度是指某点与地球球心的连线和地球赤道面所成的线面角,其数值在0至90度之间。位于赤道以北的点的纬度叫北纬,记为N,位于赤道以南的点的纬度称南纬,记为S。
纬度数值在0至30度之间的地区称为低纬地区,纬度数值在30至60度之间的地区称为中纬地区,纬度数值在60至90度之间的地区称为高纬地区。赤道、南回归线、北回归线、南极圈和北极圈是特殊的纬线。
(6)经纬度计算距离sql扩展阅读:
经纬度计算方法
在地球上任何地点,只要有只表,有根竹竿,一根卷尺,就可知道当地经纬度。但表必须与该国标准时校对。
方法如下:
1、先算两分日
比如在中国某地,杆影最短时是中午13点20分,且杆长与影长之比为1,则可知该地是北纬45°(tgα=1),东经100°(从120°里1小时减15°,4分钟减1°)杆长与影长之比需查表求α,这里用了特殊角。
2、再算两至日经度的算法不变 纬度在北半球冬至α+23.5°,夏至α-23.5°在任意一天加减修正值即可。
3、修正值算法:就是距两分或两至日的天数差乘以94/365. 比如2013年2月17日,2013年3月22日春分差33天,即太阳直射点在南纬
33×94/365=8.5°
所以今天正午时得到的纬度是(arctgα+8.5)°
tgα= 杆长/影长
参考资料来源:网络-经纬度
7. oracle 根据已知的点的经纬度查询数据中距离该点500米的经纬度点,用sql怎么查呢
猜猜你的数据库列大致的格式为:经度,纬度,餐厅。 。 。 估计经纬度应该有精确的控制,你可以根据需要设置查询 1。矩形(简单):减去经度,纬度和一个固定值的减法运算的一个固定值,条件是在这个范围内 2设置。圆(复杂):经度和平方和的平方根的纬度,条件设置 在此范围内的数据库的估计要大,所以输出音量加一个限制是必要 SQL,甲骨文 SELECT TOP 10 *从'表名,其中
选择*从
8. 经纬度与距离的换算
经纬度与距离的换算有以下两种方法:
1、二维转换
二维转换方法是将平面坐标(东坐标和北坐标)从一个坐标系统转换到另一个坐标系统。在转换时不计算高程参数。该转换方法需要确定4个参数(2个向东和向北的平移参数,1个旋转参数和1个比例因子)。如果要保持GPS测量结果独立并且有地方地图投影的信息,那么采用三维转换方法最合适。
2、三维转换
该方法基本操作步骤是利用公共点,也就是同时具有WGS84直角坐标和地方坐标的直角坐标的点位,一般需要3个以上重合点,通过布尔莎模型(或其他模型)进行计算,得到从一个系统转换到另一个系统中的平移参数、旋转参数和比例因子。
坐标转换分类
1、大地坐标(BLH)对平面直角坐标(XYZ)
常规的转换应先确定转换参数,即椭球参数、分带标准(3度,6度)和中央子午线的经度。椭球参数就是指平面直角坐标系采用什么样的椭球基准,对应有不同的长短轴及扁率。画到直角坐标系可以写为(x+z*acosθ,y+z*asinθ)a,θ为参数。
2、北京54全国80及WGS84坐标系的相互转换
一种国际上采用的地心坐标系。坐标原点为地球质心,其地心空间直角坐标系的Z轴指向BIH (国际时间)1984.O定义的协议地球极(CTP)方向,X轴指向BIH 1984.0的零子午面和CTP赤道的交点,Y轴与Z轴、X轴垂直构成右手坐标系,称为1984年世界大地坐标系统。
3、任意两空间坐标系的转换
由于测量坐标系和施工坐标系采用不同的标准,要进行精确转换,必须知道至少3个重合点(即为在两坐标系中坐标均为已知的点。采用布尔莎模型进行求解。
9. sql语句怎么写算坐标经纬度之间的距离
declare @x1 float
declare @x2 float
declare @y1 float
declare @y2 float
set @x1 = 5
set @x2 = 10
set @y1 = 5
set @y2 = 10
select power(power((@x1-@x2),2)+power((@y1-@y2),2),0.5)
10. 经纬度计算距离公式
关于用经纬度计算距离:
地球赤道上环绕地球一周走一圈共40075.04公里,而@一圈分成360°,而每1°(度)有60,每一度一秒在赤道上的长度计算如下:
40075.04km/360°=111.31955km
111.31955km/60=1.8553258km=1855.3m
而每一分又有60秒,每一秒就代表1855.3m/60=30.92m
任意两点距离计算公式为
d=111.12cos{1/[sinφasinφb十cosφacosφbcos(λb—λa)]}
其中a点经度,纬度分别为λa和φa,b点的经度、纬度分别为λb和φb,d为距离。
至于比例尺计算就不废话了