关于“php_经纬度计算距离”的问题,小编就整理了【4】个相关介绍“php_经纬度计算距离”的解答:
怎么计算两个经纬度之间的距离?通过经纬度的差值可以计算出两地的距离。任何一条经线,两地每相差纬度1度,则两地距离为111km。
赤道上,两地每相差经度1度,则两地距离也是111km,如果在某条纬线上,两地每相差经度1度,则两地距离是用公式111×cosA(A为当地经线的度数)计算。
已知经纬度求距离?地球上任意两点距离计算公式为:
D=R*arccos(siny1siny2+cosy1cosy2cos(x1-x2))。
其中R为地球半径,均值为6370km。
A点经、纬度分别为x1和y1,东经为正,西经为负。
B点经、纬度分别为x2和y2,北纬为正,南纬为负。
用上述公式算得两点的距离为30.4km,与googleearth的基本一致。
注意的是经纬度是角度,算sin、cos值时先将其换算成弧度。
D = arc cos((sin北纬A×sin北纬B)+(cos北纬A×cos北纬B×cosAB两地经度差))×地球平均半径 (Shormin) 其中地球平均半径为6371.004 km,D的单位为km 在经纬网图上,可以根据经纬度量算两点之间的距离。全球各地纬度1°的间隔长度都相等(因为所有经线的长度都相等),大约是111km/1°。
赤道上经度1°对应在地面上的弧长大约也是111km。 由于各纬线从赤道向两极递减,60°纬线上的长度为赤道上的一半,所以在各纬线上经度差1°的弧长就不相等。
在同一条纬线上(假设此纬线的纬度为α)经度1°对应的实际弧长大约为111cosαkm。
因此,只要知道了任意两地间的纬度差,或者是赤道上任何两地的经度差,就可以计算它们之间的实际距离。 两地间最近距离的判断:若两地经度差等于180o,则过两地的大圆为经线圈,两地最近距离为大圆中过两极点的劣弧;若两地经度差不等于180o,则过两地的大圆不是经线圈,而与经线圈斜交,两地最近距离不过极点,而是过两极地区。
由经纬度计算距离的公式?关于用经纬度计算距离:地球赤道上环绕地球一周走一圈共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为距离。至于比例尺计算就不废话了
已知两点经纬度,怎么求两点的距离?首先,设两点分别为P1、P2,如果其值是用度分秒形式表示,则需将其转换成十进制度的形式,如P1点纬度为23度30分,则其纬度值转换成十进制度的形式为23.5度。
然后,分别将两点的经度、纬度值转换成弧度制形式,如P1纬度为23.5度,转换成弧度制则为:23.5*PI / 180。分别用 P1latInRad、P1LongInRad、P2latInRad、P2LongInRad表示。
然后再分别求取两点间的纬度差(dlat)与经度差(dlon);
接下来求取两点间的正弦与余弦值,公式如下:A=sin2(dlat/2) + cos(P1LatInRad)*cos(P2LatInRad)*Sin2(dlon/2)
接着求取两点的正切值,公式如下:C=2*Math.Atan2(Math.Sqrt(A), Math.Sqrt(1-A))
最后返回两点间的距离:公式如下:D=EarthRadiusKm * C
到此,以上就是小编对于“php_经纬度计算距离”的问题就介绍到这了,希望介绍关于“php_经纬度计算距离”的【4】点解答对大家有用。