经纬度计算距离
怎么用经纬度计算两地之间的距离

怎么用经纬度计算两地之间的距离?1、地球赤道上环绕地球一周走一圈共40075.04公里,而@一圈分成360°,而每1°(度)有60,每一度一秒在赤道上的长度计算如下:40075.04km/360°=111.31955km111.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公里。
计算距离方位角 的经纬度坐标

计算距离方位角的经纬度坐标随着全球定位系统(GPS)和地图定位技术的发展,人们在日常生活和工作中经常需要计算两点之间的距离和方位角。
而经纬度坐标则是描述地球上任意一点位置的常用方式。
在这篇文章中,我们将探讨如何利用经纬度坐标来计算两点之间的距离和方位角。
一、经纬度坐标的表示和计算1.1 经纬度坐标的表示经度和纬度分别用度(°)、分(′)和秒(″)来表示,例如北纬30°15′20″,东经120°59′36″。
在计算机编程中,经纬度通常用小数表示,例如东经120.xxx°、北纬30.xxx°。
1.2 经纬度坐标的计算计算两点之间的距离和方位角通常涉及地球的曲率和球面三角学的知识。
常见的计算方法包括球面三角学公式、Vincenty公式等。
二、计算两点之间距离的方法2.1 球面三角学公式球面三角学公式是最基本的计算地球表面两点之间距离的方法之一。
其基本原理是根据两点的经纬度坐标来计算它们之间的大圆弧距离。
2.2 Vincenty公式Vincenty公式是一种更精确的计算地球表面两点之间距离的方法,它考虑了地球的椭球体形状和扁率因素,因此在距离较大的情况下精度更高。
三、计算两点之间方位角的方法3.1 利用正弦定理在已知两点的经纬度坐标后,可以利用正弦定理来计算它们之间的方位角,即两点连线与正北方向的夹角。
3.2 利用方位角公式另一种计算方位角的方法是利用方位角公式,根据两点的经纬度坐标和球面三角学的知识来计算它们之间的方位角。
四、实际应用和注意事项4.1 在实际应用中,除了纯粹的数学计算外,还需要考虑地图投影方式、坐标系转换等因素。
4.2 在计算距离和方位角时,需要注意经纬度坐标的单位转换,比如将度分秒转换为小数表示。
4.3 对于距离较短的情况,可以采用简化的计算方法来近似计算两点之间的距离和方位角。
计算距离和方位角的经纬度坐标是一项涉及到地理信息和数学知识的复杂计算。
经纬度格式转换及距离计算工具

经纬度格式转换及距离计算工具一、经纬度格式转换当涉及到经纬度坐标时,常见的格式有以下几种:1.度分秒(DMS)格式:例如:25°2'45.678"N,120°23'56.789"E2.十进制度(DD)格式:例如:25.0456°N,120.3990°E3.度分(DM)格式:例如:25°2.762'N,120°39.531'E要实现经纬度格式的转换,可以通过以下步骤完成:1.将度分秒(DMS)格式的经纬度坐标转换为十进制度(DD)格式,可以使用以下公式:DD = degrees + minutes/60 + seconds/3600其中,degrees为度数,minutes为分钟数,seconds为秒数。
2.将度分秒(DMS)格式的经纬度坐标转换为度分(DM)格式,可以使用以下公式:DM = degrees + minutes/60其中,degrees为度数,minutes为分钟数。
二、距离计算计算两个经纬度点之间的距离一般使用大圆距离(Great Circle Distance)。
大圆距离是指沿着地球表面最短路径的距离,该路径是两个经纬度点之间的弧线段。
要计算两个经纬度点之间的距离,可以使用以下公式:distance = r * arccos(sin(lat1)*sin(lat2) +cos(lat1)*cos(lat2)*cos(lon2-lon1))其中,r是地球的半径,lat1和lon1为第一个经纬度点的纬度和经度,lat2和lon2为第二个经纬度点的纬度和经度。
三、示例代码下面是一个使用Python编写的经纬度格式转换及距离计算的示例代码:```pythonimport mathdef dms_to_dd(degrees, minutes, seconds, direction):dd = degrees + minutes/60 + seconds/3600if direction == 'S' or direction == 'W':dd *= -1return dddef dms_to_dm(degrees, minutes, direction):dm = degrees + minutes/60if direction == 'S' or direction == 'W':dm *= -1return dmdef distance(lat1, lon1, lat2, lon2):r=6371#地球半径,单位为千米lat1 = math.radians(lat1)lon1 = math.radians(lon1)lat2 = math.radians(lat2)lon2 = math.radians(lon2)dlon = lon2 - lon1dlat = lat2 - lat1a = math.sin(dlat/2)**2 + math.cos(lat1) * math.cos(lat2) * math.sin(dlon/2)**2c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))distance = r * creturn distance#示例#输入经纬度坐标格式为度分秒(DMS)格式lat_dms = 25lat_minutes = 2lat_seconds = 45.678lat_direction = 'N'lon_dms = 120lon_minutes = 23lon_seconds = 56.789lon_direction = 'E'#转换为十进制度(DD)格式lat_dd = dms_to_dd(lat_dms, lat_minutes, lat_seconds,lat_direction)lon_dd = dms_to_dd(lon_dms, lon_minutes, lon_seconds,lon_direction)#转换为度分(DM)格式lat_dm = dms_to_dm(lat_dms, lat_minutes, lat_direction)lon_dm = dms_to_dm(lon_dms, lon_minutes, lon_direction)#计算距离distance = distance(lat_dd, lon_dd, 25.0456, 120.3990)print('经纬度转换结果:')print('十进制度(DD)格式:', lat_dd, lon_dd)print('度分(DM)格式:', lat_dm, lon_dm)print('两个经纬度点之间距离:', distance, '千米')```这个示例代码实现了经纬度格式的转换和距离的计算。
84经纬度距离计算公式

84经纬度距离计算公式经度和纬度可以用球面坐标系来表示,因此距离计算可以采用大圆距离公式(Haversine公式),其计算公式为:d = 2 * R * arcsin(sqrt(sin²((lat₂-lat₁)/2) +cos(lat₁) * cos(lat₂) * sin²((lon₂-lon₁)/2)))其中,d表示两个点之间的距离,lat₁和lon₁表示第一个点的纬度和经度,lat₂和lon₂表示第二个点的纬度和经度。
R表示地球的平均半径,取值为6371公里。
该公式可以用多种编程语言实现,如Python:import mathR = 6371.0 # 地球平均半径,单位为千米def distance(lat1, lon1, lat2, lon2):lat1_r = math.radians(lat1)lon1_r = math.radians(lon1)lat2_r = math.radians(lat2)lon2_r = math.radians(lon2)d_lat = lat2_r - lat1_rd_lon = lon2_r - lon1_ra = math.sin(d_lat/2)**2 + math.cos(lat1_r) *math.cos(lat2_r) * math.sin(d_lon/2)**2c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))return R * c# 示例lat1, lon1 = 39.9087, 116.3975 # 北京天安门lat2, lon2 = 31.2304, 121.4737 # 上海外滩d = distance(lat1, lon1, lat2, lon2)print(d) # 输出约为1068.941千米。
利用经纬网计算距离

利用经纬网计算距离经纬网是利用地球上的经度和纬度来确定任意两个点之间的距离和位置的一种方法。
经度是指从地球上的任意一个点向东或向西测量的角度,而纬度是指从地球上的任意一个点向北或向南测量的角度。
通过将地球划分为一个以赤道为基准的网格,我们可以计算两个点之间的距离。
在经纬网上计算两个点之间的距离时,首先需要确定这两个点的经纬度坐标。
经度的度量范围为0°至180°(以东为正、西为负),而纬度的度量范围为0°至90°(以北为正、南为负)。
可以使用GPS设备、地图或在线地理工具来确定特定地点的经纬度。
计算距离的一种简单方法是使用球面三角法,即通过计算两点之间的弦长来估计它们之间的弦长。
该方法基于地球的近似球形形状,并假设地球是完全光滑和对称的。
假设A点的经度为A经度(lonA)、纬度为A纬度(latA),B点的经度为B经度(lonB)、纬度为B纬度(latB)。
该方法的计算公式如下:d = R * arccos(sin(latA) * sin(latB) + cos(latA) * cos(latB) * cos(lonB - lonA))其中,d是A点与B点之间的距离,R是地球的平均半径(约为6371公里)。
这个公式基于两个点之间的大圆弧距离,即两个点之间在地球表面上的最短距离。
它考虑到了地球的曲率,并返回单位为千米的距离值。
例如,如果A点位于纽约市(纬度为40.7128°N,经度为74.0060°W),而B点位于洛杉矶(纬度为34.0522°N,经度为118.2437°W),则可以使用上述公式来计算它们之间的距离。
sin(40.7128°) * sin(34.0522°) + cos(40.7128°) *cos(34.0522°) * cos(118.2437° - 74.0060°)≈ 0.7412d ≈ 6371 * arccos(0.7412) ≈ 3964.1公里因此,纽约市和洛杉矶之间的距离约为3964.1公里。
怎么用经纬度计算两地之间的距离

怎么用经纬度计算两地之间的距离经纬度是地球上一点的坐标表示方法,可以用来计算两个点之间的距离。
计算两地之间的距离可以使用多种方法,包括球面距离公式、大圆航线距离和Vincenty算法等。
下面将详细介绍这些方法。
1.球面距离公式球面距离公式是最简单且最常用的计算两点之间距离的方法。
它基于球面三角形的边长计算两点之间的距离,如下所示:d = R * arccos(sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(lon2 - lon1))其中,d是两点之间的球面距离,R是地球的平均半径,lat1和lat2是两点的纬度,lon1和lon2是两点的经度。
2.大圆航线距离大圆航线距离是计算两点之间最短距离的方法,它基于地球表面上连接两点的最短弧线,如下所示:d = R * arccos(sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(lon2 - lon1))其中,d是两点之间的大圆航线距离,R是地球的半径,lat1和lat2是两点的纬度,lon1和lon2是两点的经度。
3. Vincenty算法Vincenty算法是一种更精确的计算两点之间距离的方法,它基于椭球体模型而不是简单地球模型。
该算法能够考虑地球形状的扁平化,并且适用于短距离和长距离的计算。
具体实现需要迭代计算,公式略显繁琐,如下所示:a=R1,b=R2,f=(a-b)/aL = L2 - L1, U1 = atan((1 - f) * tan(lat1)), U2 = atan((1 - f) * tan(lat2))sinU1 = sin(U1), cosU1 = cos(U1), sinU2 = sin(U2), cosU2 = cos(U2)λ=L,λʹ=2πwhile (,λ - λʹ, > 10e-12):sinλ = sin(λ), cosλ = cos(λ), sinσ = sqrt((cosU2 *sinλ) * (cosU2 * sinλ) + (cosU1 * sinU2 - sinU1 * cosU2 *cosλ) * (cosU1 * sinU2 - sinU1 * cosU2 * cosλ))cosσ = sinU1 * sinU2 + cosU1 * cosU2 * cosλσ = atan2(sinσ, cosσ)sinα = cosU1 * cosU2 * sinλ / sinσcos²α = 1 - sinα * sinαcos2σm = cosσ - 2 * sinU1 * sinU2 / cos²αC = f / 16 * cos²α * (4 + f * (4 - 3 * cos²α))λʹ=λλ = L + (1 - C) * f * sinα * (σ + C * sinσ * (cos2σm + C * cosσ * (-1 + 2 * cos2σm * cos2σm)))u² = cos²α * (a*a - b*b) / (b*b)B=u²/1024*(256+u²*(-128+u²*(74-47*u²)))Δσ = B / 6 * (cosσ * (-1 + 2 * cos2σm * cos2σm) - B / 4 * (cos2σm * (-3 + 4 * sinσ * sinσ) - B / 6 * cosσ * (-3 + 4 * cos2σm * cos2σm) * (-3 + 4 * sinσ * sinσ)))s=b*A*(σ-Δσ)其中,a和b是地球的长半轴和短半轴,f是扁平度参数,R1和R2是两点的曲率半径,L1和L2是两点的经度差,lat1和lat2是两点的纬度。
根据经纬度算距离

根据经纬度算距离
经纬度距离计算简单方法:
1) 根据最长的纬线,即0度纬线,也就是赤道,计算经度的距离。
赤道周长:40075704m(约4万km),所以,1度经度最大距离等于40075704/360=111321m(约111km)。
0.0001度经度最大距离等于11.132m。
0.000001度经度最大距离是0.1113m。
2) 根据经线长度,计算纬度的距离。
子午线周长:40008548m(约4万km,所以,1度纬度最大距离等于40008548/360=111134m(约111km)。
0.0001度经度最大距离等于11.113m。
0.000001度经度最大距离等于0.1111m。
所以说,经纬度相差0.000001度时候,距离相差位0.111m。
这个精度已经满足了绝大部分GIS应用的需求,所以各大在线地图的坐标也都保留到了第6位。
结论:
相差1经度或者1纬度,球面距离约为111 千米
相差0.000001经度或者0.000001纬度,球面距离为0.11 米
1。
excel经纬度距离计算公式

excel经纬度距离计算公式经纬度距离计算公式是一种用于计算地球上两点之间距离的公式。
在Excel中,我们可以使用该公式来计算两个经纬度坐标之间的距离,这对于地理信息系统(GIS) 和其他需要计算地理距离的应用程序非常有用。
该公式基于海卫一号卫星计算公式,其核心思想是根据两个经纬度坐标之间的球面距离来计算两点之间的距离。
由于地球是一个略微扁平的球体,球面距离比直线距离更准确。
该公式的基本形式如下:距离= 6371.01 * ACOS(COS(RADIANS(90 - 纬度1)) * COS(RADIANS(90 - 纬度2)) + SIN(RADIANS(90 - 纬度1)) * SIN(RADIANS(90 - 纬度2)) * COS(RADIANS(经度1 - 经度2)))其中,6371.01是地球半径(单位是千米),纬度和经度是以度为单位的坐标值,RADIANS是将角度转换为弧度的函数,ACOS是反余弦函数,COS和SIN是余弦和正弦函数。
在Excel中,我们可以使用以下公式来计算两点之间的距离:= 6371.01 * ACOS(COS(RADIANS(90 - 纬度1)) * COS(RADIANS(90 - 纬度2)) + SIN(RADIANS(90 - 纬度1)) * SIN(RADIANS(90 - 纬度2)) * COS(RADIANS(经度1 - 经度2)))其中,纬度1和经度1是第一个点的坐标,纬度2和经度2是第二个点的坐标。
当我们输入这个公式后,Excel会自动计算出两个经纬度坐标之间的距离,并将结果显示在单元格中。
该公式可以用于计算任意两个地点之间的距离,无论它们位于世界的哪个角落。
需要注意的是,该公式仅适用于计算球面距离,而不考虑地球表面的复杂形状和地形。
在实际应用中,我们可能需要考虑其他因素,例如海拔高度、地形等,以更准确地计算地球上两点之间的实际距离。
经纬度距离计算公式是一种非常有用的工具,它可以帮助我们快速、准确地计算地球上任意两点之间的距离。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
根据两点经纬度计算距离这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的假想线),在地球中腰画一个与地轴垂直的大圆圈,使圈上的每一点都和南北两极的距离相等,这个圆圈就叫作“赤道”。
在赤道的南北两边,画出许多和赤道平行的圆圈,就是“纬圈”;构成这些圆圈的线段,叫做纬线。
我们把赤道定为纬度零度,向南向北各为90度,在赤道以南的叫南纬,在赤道以北的叫北纬。
北极就是北纬90度,南极就是南纬90度。
纬度的高低也标志着气候的冷热,如赤道和低纬度地地区无冬,两极和高纬度地区无夏,中纬度地区四季分明。
其次,从北极点到南极点,可以画出许多南北方向的与地球赤道垂直的大圆圈,这叫作“经圈”;构成这些圆圈的线段,就叫经线。
公元1884平面坐标图年,国际上规定以通过英国伦敦近郊的格林尼治天文台的经线作为计算经度的起点,即经度零度零分零秒,也称“本初子午线”。
在它东面的为东经,共180度;在它西面的为西经,共180度。
因为地球是圆的,所以东经180度和西经180度的经线是同一条经线。
各国公定180度经线为“国际日期变更线”。
为了避免同一地区使用两个不同的日期,国际日期变线在遇陆地时略有偏离。
每一经度和纬度还可以再细分为60分,每一分再分为60秒以及秒的小数。
利用经纬线,我们就可以确定地球上每一个地方的具体位置,并且把它在地图或地球仪上表示出来。
例如问北京的经纬度是多少?我们很容易从地图上查出来是东经116度24分,北纬39度54分。
在大海中航行的船只,只要把所在地的经度测出来,就可以确定船在海洋中的位置和前进方向。
纬度共有90度。
赤道为0度,向两极排列,圈子越小,度数越大。
横线是纬度,竖线是经度。
当然可以计算,四元二次方程。
经度和纬度都是一种角度。
经度是个两面角,是两个经线平面的夹角。
因所有经线都是一样长,为了度量经度选取一个起点面,经1884年国际会议协商,决定以通过英国伦敦近郊、泰晤士河南岸的格林尼治皇家天文台(旧址)的一台主要子午仪十字丝的那条经线为起始经线,称为本初子午线。
本初子午线平面是起点面,终点面是本地经线平面。
某一点的经度,就是该点所在的经线平面与本初子午线平面间的夹角。
在赤道上度量,自本初子午线平面作为起点面,分别往东往西度量,往东量值称为东经度,往西量值称为西经度。
由此可见,一地的经度是该地对于本初子午线的方向和角距离。
本初子午线是0°经度,东经度的最大值为180°,西经度的最大值为180°,东、西经180°经线是同一根经线,因此不分东经或西经,而统称180°经线。
纬度是个线面角。
起点面是赤道平面,线是本地的地面法线。
所谓法线,即垂直于参考扁球体表面的线。
某地的纬度就是该地的法线与赤道平面之间的夹角。
纬度在本地经线上度量,由赤道向南、北度量,向北量值称为北纬度,向南量值称为南纬度。
由此可见,一地的纬度是该地对于赤道的方向和角距离。
赤道是0°纬线,北纬度的最大值为90°,即北极点;南纬度的最大值为90°,即南极点。
经纬度互换度(DDD):E 108.90593度 N 34.21630度如何将度(DDD):: 108.90593度换算成度分秒(DMS)东经E 108度54分22.2秒?转换方法是将108.90593整数位不变取108(度),用0.90593*60=54.3558,取整数位54(分),0.3558*60=21.348再取整数位21(秒),故转化为108度54分21秒.同样将度分秒(DMS):东经E 108度54分22.2秒换算成度(DDD)的方法如下:108度54分22.2秒=108+(54/60)+(22.2/3600)=108.90616度因为计算时小数位保留的原因,导致正反计算存在一定误差,但误差影响不是很大。
1秒的误差就是几米的样子。
GPS车友可以用上述方法换算成自己需要的单位坐标。
经纬度换算成米纬度分为60分,每一分再分为60秒以及秒的小数。
纬度线投射在图上看似水平的平行线,但实际上是不同半径的圆。
有相同特定纬度的所有位置都在同一个纬线上。
赤道的纬度为0°,将行星平分为南半球和北半球。
纬度是指某点与地球球心的连线和地球赤道面所成的线面角,其数值在0至90度之间。
位于赤道以北的点的纬度叫北纬,记为N,位于赤道以南的点的纬度称南纬,记为S。
纬度数值在0至30度之间的地区称为低纬地区,纬度数值在30至60度之间的地区称为中纬地区,纬度数值在60至90度之间的地区称为高纬地区。
赤道、南回归线、北回归线、南极圈和北极圈是特殊的纬线。
纬度1秒的长度地球的子午线总长度大约40008km。
平均:纬度1度 = 大约111km纬度1分 = 大约1.85km纬度1秒 = 大约30.9m根据地球上任意两点的经纬度计算两点间的距离地球是一个近乎标准的椭球体,它的赤道半径为6378.140千米,极半径为 6356.755千米,平均半径6371.004千米。
如果我们假设地球是一个完美的球体,那么它的半径就是地球的平均半径,记为R。
如果以0度经线为基准,那么根据地球表面任意两点的经纬度就可以计算出这两点间的地表距离(这里忽略地球表面地形对计算带来的误差,仅仅是理论上的估算值)。
设第一点A的经纬度为(LonA, LatA),第二点B的经纬度为(LonB, LatB),按照0度经线的基准,东经取经度的正值(Longitude),西经取经度负值(-Longitude),北纬取90-纬度值(90- Latitude),南纬取90+纬度值(90+Latitude),则经过上述处理过后的两点被计为(MLonA, MLatA)和(MLonB, MLatB)。
那么根据三角推导,可以得到计算两点距离的如下公式:C = sin(MLatA)*sin(MLatB)*cos(MLonA-MLonB) + cos(MLatA)*cos(MLatB)Distance = R*Arccos(C)*Pi/180这里,R和Distance单位是相同,如果是采用6371.004千米作为半径,那么Distance 就是千米为单位,如果要使用其他单位,比如mile,还需要做单位换算,1千米=0.621371192mile如果仅对经度作正负的处理,而不对纬度作90-Latitude(假设都是北半球,南半球只有澳洲具有应用意义)的处理,那么公式将是:C = sin(LatA)*sin(LatB) + cos(LatA)*cos(LatB)*cos(MLonA-MLonB)Distance = R*Arccos(C)*Pi/180以上通过简单的三角变换就可以推出。
如果三角函数的输入和输出都采用弧度值,那么公式还可以写作:C = sin(LatA*Pi/180)*sin(LatB*Pi/180) +cos(LatA*Pi/180)*cos(LatB*Pi/180)*cos((MLonA-MLonB)*Pi/180)Distance = R*Arccos(C)*Pi/180也就是:C = sin(LatA/57.2958)*sin(LatB/57.2958) +cos(LatA/57.2958)*cos(LatB/57.2958)*cos((MLonA-MLonB)/57.2958)Distance = R*Arccos(C) = 6371.004*Arccos(C) kilometer =0.621371192*6371.004*Arccos(C) mile = 3958.758349716768*Arccos(C) mile在实际应用当中,一般是通过一个个体的邮政编码来查找该邮政编码对应的地区中心的经纬度,然后再根据这些经纬度来计算彼此的距离,从而估算出某些群体之间的大致距离范围(比如酒店旅客的分布范围-各个旅客的邮政编码对应的经纬度和酒店的经纬度所计算的距离范围-等等),所以,通过邮政编码查询经纬度这样一个数据库是一个很有用的资源。
附:C#代码:private const double EARTH_RADIUS = 6378.137;//地球半径private static double rad(double d){return d * Math.PI / 180.0;}public static double GetDistance(double lat1, double lng1, double lat2, double lng2) {double radLat1 = rad(lat1);double radLat2 = rad(lat2);double a = radLat1 - radLat2;double b = rad(lng1) - rad(lng2);double s = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a/2),2) +Math.Cos(radLat1)*Math.Cos(radLat2)*Math.Pow(Math.Sin(b/2),2)));s = s * EARTH_RADIUS;s = Math.Round(s * 10000) / 10000;return s;}。