1. 已知经纬度的两点如何测算直线距离
设地球半径为r,地心为0,球面上两点a、b的球面坐标为a(α1,β1),b(α2,β2),α1、α2∈[-π,π],β1、β2∈[-π/2,π/2
],
ab
=r•arccos[cosβ1cosβ2cos(α1-α2)+sinβ1sinβ2]
利用勾股定理与正弦定理则可求出ab两点间的直线距离,
2. android中根据谷歌地图的经纬度怎么计算俩个点之间的直线距离
查询小于 10 公里已内的地图点 sql 语句
$result = mysql_query ( "SELECT name,longitude,latitude,des FROM location
where type=".$type." and (((longitude - ".$lng.") * (longitude - ".$lng.") + (latitude
- ".$lat.") * (latitude - ".$lat.")) <= (10 / 110) * (10 / 110))");
其中核心部分是 (((longitude - ".$lng.") * (longitude - ".$lng.") + (latitude -
".$lat.") * (latitude - ".$lat.")) <= (10 / 110) * (10 / 110)),$lng和$lat 分别代码
从Android 客户端提交过来的经度和纬度。
3. 怎样计算两个经纬度之间的距离 百度百科
地球赤道上环绕地球一周走一圈共 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为距离)。
地球上所有地方的纬度一分的距离都是约等于1.86公里,也就是一度等于1.86*60=111公里。不同纬度处的经度线上的一分的实际长度是不同的,219国道基本在东经29-38度之间,29度处的一分经线长约1.63公里,38度处的一分经线长约1.47公里。
(3)经纬度的直线距离sql扩展阅读:
在地球仪上,由经线和纬线就组成了经纬网;如果把经纬网地球仪展开,就形成了一幅平面的地图。确定位置,在航空、航天、航海以及气象等方面都有作用。“船在海上遇到危险时,如何去营救”等等,都要用到经纬网地图。
经度 :为了区分地球上的每一条经线,人们给经线标注了度数,这就是经度。经度每15度1个时区。 实际上经度是两条经线所在平面之间的夹角。国际上规定,把通过英国首都伦敦格林威治天文台原址的那一条经线定为0°经线,也叫本初子午线。
从0°经线算起,向东、向西各分作180°,以东的180°属于东经,习惯上用“E”作代号,以西的180°属于西经,习惯上用“W”作代号。东经180°和西经的180°重合在一条经线上,那就是东西180°经线。纬度:从赤道向北量度为“北纬”(N);向南量度为“南纬”(S)。
在地图上判读经度时应注意:从西向东,经度的度数由小到大为东经度;从西向东,经度的度数由大到小,为西经度;除0°和180°经线外,其余经线都能准确区分是东经度还是西经度
4. 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)
5. 如何计算经纬度之间的距离
计算经纬度之间的距离方法如下:
计算地球上经纬度之间的距离d,已知地球上两点的经度、纬度:(X1,Y1), (X2,Y2),其中X1,X2为经度,Y1,Y2为纬度;
视计算程序需要转化为弧度(*3.1415926/180)地球半径为R=6371.0 km,则两点距离d=R*arcos[cos(Y1)*cos(Y2)*cos(X1-X2)+sin(Y1)*sin(Y2)]。
假设在中国某地,杆影最短时是中午13点20分,且杆长与影长之比为1,则可知该地是北纬45°(tgα=1),东经100°(从120°里1小时减15°,4分钟减1°)杆长与影长之比需查表求α。再算两至日经度的算法不变 纬度在北半球冬至α+23.5°,夏至α-23.5°在任意一天加减修正值即可。
(5)经纬度的直线距离sql扩展阅读
经纬分度:
经度分为360度,每15度1个时区,其中0度的叫本初子午线,是第一个进入新一天的地方,然后向西每过1个时区就相差1小时。例如是早上5点,那么向西一个时区就是早上4点,再过1个时区就是早上3点,依此类推,向东则相反,一直到本初子午线。
纬度赤道的纬度为0°,将行星平分为南半球和北半球。纬度是指某点与地球球心的连线和地球赤道面所成的线面角,其数值在0至90度之间。位于赤道以北的点的纬度叫北纬,记为N,位于赤道以南的点的纬度称南纬,记为S。
纬度数值在0至30度之间的地区称为低纬地区,纬度数值在30至60度之间的地区称为中纬地区,纬度数值在60至90度之间的地区称为高纬地区。
6. oracle 根据已知的点的经纬度查询数据中距离该点500米的经纬度点,用sql怎么查呢
猜猜你的数据库列大致的格式为:经度,纬度,餐厅。 。 。 估计经纬度应该有精确的控制,你可以根据需要设置查询 1。矩形(简单):减去经度,纬度和一个固定值的减法运算的一个固定值,条件是在这个范围内 2设置。圆(复杂):经度和平方和的平方根的纬度,条件设置 在此范围内的数据库的估计要大,所以输出音量加一个限制是必要 SQL,甲骨文 SELECT TOP 10 *从'表名,其中
选择*从
7. 怎么根据经纬度计算线路的距离
1、地球赤道上环绕地球一周走一圈共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为距离。
2、分为3步计算:
第1步 分别将两点经纬度转换为三维直角坐标:
假设地球球心为三维直角坐标系的原点,球心与赤道上0经度点的连线为X轴,球心与赤道上东经90度点的连线为Y轴,球心与北极点的连线为Z轴,则地面上点的直角坐标与其经纬度的关系为:
x=R×cosα×cosβ
y=R×cosα×sinβ
z=R×sinα
R为地球半径,约等于6400km;
α为纬度,北纬取+,南纬取-;
β为经度,东经取+,西经取-。
第2步 根据直角坐标求两点间的直线距离(即弦长):
如果两点的直角坐标分别为(x1,y1,z1)和(x2,y2,z2),则它们之间的直线距离为: L=[(x1-x2)^2+(y1-y2)^2+(z1-z2)^2]^0.5
上式为三维勾股定理,L为直线距离。
第3步 根据弦长求两点间的距离(即弧长):
由平面几何知识可知弧长与弦长的关系为:
S=R×π×2[arc sin(0.5L/R)]/180
上式中角的单位为度,1度=π/180弧度,S为弧长。
3、1度的实际长度是111公里。但纬线的距离会越考两端越小,他的距离就会变成111乘COS纬度数,经度不变。
4、南北方向算出两点纬度差,一度等于60海里,1分等于1海里,海里与公里换算关系1海里等于1.852公里。东西方向量出距离到两点间纬度附近量出纬度差,得出海里数,再乘以1.852换算成公里。可按直角三角形原理求出两点间距离。
5、度的实际长度是111公里。但纬线的距离会越考两端越小,他的距离就会变成111乘COS纬度数,经度不变(如果在同一经度)
8. sql (mysql)实现查询某一个经纬度周围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为你数据库存的商家经纬度的字段名,其余的为注释
9. 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为你数据库存的商家经纬度的字段名,其余的为注释
10. sql语句怎么写算坐标经纬度之间的距离我是mysql数据库。 请详细点!谢谢!
这单用SQL语句是办不到的吧
应该先把坐标从数据库中取出,再用三角函数计算。
或者在存入数据库之前,先把距离计算出来,一并存入。