怎么知道经纬度算距离,
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么知道经纬度算距离,相关的知识,希望对你有一定的参考价值。
1、如果仅算出两地的南北距离,则计算两地纬度差即可,与经度无关。北京纬度为39°54′N,马来西亚纬度为1°22′N,则两地纬度差为38°32′,根据纬度相差1°,距离相差111km的规律,计算得两地南北距离为4281km。2、如果计算两地球面距离,计算过程则较为复杂,可根据球面两地距离公式:S=地球半径×arc
cos[cos北京纬度cos马来纬度cos(北京经度-马来经度)+sin北京纬度sin马来纬度]。
解得两地距离为4768km。
同一纬度:cos纬度数×经度差×111km;
同一经度:纬度差×111km;
不同经度,纬度:将它们分别平移到同一经度,纬度后按以上方法计算出两个值,再用钩股定理计算。
扩展资料:
经度的每一度被分为60分,每一分被分为60秒。一个经度因此一般看上去是这样的:东经23°27′
30"或西经23°27′
30"。
更精确的经度位置中秒被表示为分的小数,比如:东经23°27.500′,但也有使用度和它的小数的:东经23.45833°。有时西经被写做负数:-23.45833°。但偶尔也有人把东经写为负数,但这相当不常规。
一个经度和一个纬度一起确定地球上一个地点的精确位置。
赤道上经度的每个度大约相当于111km,经度的每个度的距离从0km到111km不等。它的距离随纬度的不同而变化,等于111km乘纬度的余弦。不过这个距离还不是相隔一经度的两点之间最短的距离,最短的距离是连接这两点之间的大圆的弧的距离,它比上面所计算出来的距离要小一些。
参考资料来源:百度百科-经纬度 参考技术A 1、如果仅算出两地的南北距离,则计算两地纬度差即可,与经度无关。北京纬度为39°54′N,马来西亚纬度为1°22′N,则两地纬度差为38°32′,根据纬度相差1°,距离相差111km的规律,计算得两地南北距离为4281km。
2、如果计算两地球面距离,计算过程则较为复杂,可根据球面两地距离公式:S=地球半径×arc
cos[cos北京纬度cos马来纬度cos(北京经度-马来经度)+sin北京纬度sin马来纬度]。
解得两地距离为4768km。 参考技术B 我给你回答了呀dd
b点的位置应该是一个圆的轨迹。与球心和a点连线的直线成z度角的射线与球面的轨迹线。z角由下式确定:
z×3.14×r/180=170,其中r为a点的地球半径,这个很好计算或查的(看题目要求来定,也可近似为地球平均半径);z为度数。
求b点经纬度解法:
设b点经纬度为(a,b),a为纬度,b为经度。
则
b点的轨迹如下:
((a-n)×3.14×r/180)^2+((b-e)×3.14×r/180)^2=170
式中n,e分别为a点的纬度和经度,r为a点的地球半径。
如有不明之处,可给我发消息联系。
当经纬度为已知点时计算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 |
【讨论】:
以上是关于怎么知道经纬度算距离,的主要内容,如果未能解决你的问题,请参考以下文章