知道经纬度怎么算距离?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了知道经纬度怎么算距离?相关的知识,希望对你有一定的参考价值。
参考技术A 问题一:怎么根据经纬度计算线路的距离 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.12cos1/[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纬度数,经度不变(如果在同一经度)
问题二:我现在知道两个地方的经度和纬度,请用excel相关公式计算出两点的距离 =INT((ACOS(SIN(B1/180*PI())*SIN(B2/180*PI())+COS(B1/180*PI())*COS(B2/180*PI())*COS(A1/180*PI()-A2/180*PI()))*180*60/PI())*100000)/100000*1.852
问题三:请问 知道经纬度 不知道怎样算距离 使用经纬度坐标工具可以计算距离
问题四:根据距离算经纬度 每一度一秒在赤道上的长度计算如下:
40075.04km/360°=111.31955km
111.31955km/60'=1.8553258km=1855.3m
而每一分又有60秒
每一秒就代表 1855.3m/60=30.92m
任意两点距离计算公式为
d=111.12cos1/[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公里。
问题五:已知经纬度,怎样计算两点间距离 公式: =6371004*ACOS((SIN(RADIANS(B2))*SIN(RADIANS(D2))+COS(RADIANS(B2))*COS(RADIANS(D2))*COS(RADIANS(C2-A2))))
问题六:根据经纬度求距离 你没有把问题讲清楚。但是我可骇告诉你:在地球上同一条经线上纬度相差一度,实际距离是111公里;在赤道经度相差一度,实际距离是111公里,在其他的纬线上,经度每相差一度,实际距离是111*经度数*cos经度数,例如在北纬30度,经度相差5度,实际距离是:111*5*cos30度。明白了吗?
当经纬度为已知点时计算100米距离
【中文标题】当经纬度为已知点时计算100米距离【英文标题】:Calculate 100 meter distance when the latitude and longitude is a known point 【发布时间】:2011-05-24 03:53:33 【问题描述】:我想知道是否可以计算已知纬度和经度的给定点周围 100 米的距离。我在 MySQL 数据库中有一些坐标,想知道特定坐标是否位于给定点的 100 米范围内。
我使用的是安卓平台。我只知道我站立的一个坐标(经度和纬度)(当前位置),我想设置距离范围(比如 100 米)。
我在数据库中保存了更多坐标,并想计算数据库中保存的其他点是否在我当前位置的 100 米范围内。我不知道我是否可以在我的应用程序中使用 GIS 数据库。
【问题讨论】:
你在什么平台上做计算? MySql 还是 JavaScript? 在 100m 处,您可以 (a) 假设地球在该比例尺上是平的,并使用几个人已经给出的相当简单的公式,或者 (b) 关心高度,在这种情况下,您需要地理信息系统数据库。 【参考方案1】:给定经纬度计算两点距离的完整代码http://www.movable-type.co.uk/scripts/latlong.html
【讨论】:
【参考方案2】:给定的输入是_LATITUDE
、_LONGITUDE
和_METERSRANGE
SELECT *,
( ( ( Acos(Sin(( _LATITUDE * Pi() / 180 )) * Sin((
` LATITUDE `* Pi() / 180 )) +
Cos
((
_LATITUDE * Pi() / 180 )) * Cos((
` LATITUDE `* Pi() / 180 )) *
Cos
((
(
_LONGITUDE - ` LONGITUDE ` ) * Pi() / 180 ))) ) *
180 / Pi
()
) * 60 * 1.1515 * 1.609344 * 1000 ) AS METERS
FROM MYTABLE
WHERE METERS <= _METERSRANGE
【讨论】:
我知道这是很久以前发布的 - 但书面值代表什么,即 ) * 60 * 1.1515 * 1.609344 * 1000 ) 作为米 - 什么是 1.1515? 1.609344?等 @tember 1.6 是英里/公里转换器。 60 是一个学位的分钟数; 1000是一公里的米数; 1.1515 是海里的法定英里数。事实:一海里是赤道纬度一分钟的长度。更多解释请参见:***.com/questions/389211/… 这个答案是正确的。我测试了它,它工作正常。 既然可以通过差值检查,为什么还要计算呢?【参考方案3】:如果有人还在寻找答案,计算距离很简单(精确获取方向很难计算,如果有人知道简单的答案,请添加)
因此请检查您的经纬度值之间的差异,十进制度数更改为 0.001 表示距离为 111 米。检查纬度和经度到十进制度的变化最大 0.001 将在您的点周围绘制一个 111m 半径的圆。
例如。您的起点是 A(Lat1,Lng1)。您要测试的点 B(LatB,LngB) , C(LatC,LngC) .....
if: (Lat1 - 0.001)
if: (Lat1 - 0.001)
十进制度参考https://en.wikipedia.org/wiki/Decimal_degrees
decimal | degrees | distance |
---|---|---|
0 | 1.0 | 111 km |
1 | 0.1 | 11.1 km |
2 | 0.01 | 1.11 km |
3 | 0.001 | 111 m |
4 | 0.0001 | 11.1 m |
5 | 0.00001 | 1.11 m |
6 | 0.000001 | 0.111 m |
7 | 0.0000001 | 1.11 cm |
8 | 0.00000001 | 1.11 mm |
【讨论】:
以上是关于知道经纬度怎么算距离?的主要内容,如果未能解决你的问题,请参考以下文章