
距离换算
-
2023年3月17日发(作者:行使权利)经纬度互换、换算成⽶、两点的经纬度计算两点间的距离
GPS坐标系我本⾝不太了解它跟⾕歌地图经纬度有多⼤区别,于是搜了⼀下,看看他们的区别:
地形图坐标系:我国的地形图采⽤⾼斯-克吕格平⾯直⾓坐标系。在该坐标系中,横轴:⾚道,⽤Y表⽰;纵轴:中央经线,⽤X表⽰;坐
标原点:中央经线与⾚道的交点,⽤0表⽰。⾚道以南为负,以北为正;中央经线以东为正,以西为负。我国位于北半球,故纵坐标均为正
值,但为避免中央经度线以西为负值的情况,将坐标纵轴西移500公⾥。
北京54坐标系:1954年我国在北京设⽴了⼤地坐标原点,采⽤克拉索夫斯基椭球体,依此计算出来的各⼤地控制点的坐标,称为北京54坐
标系。
GS84坐标系:即世界通⽤的经纬度坐标系。
经纬度表⽰:1884年国际经度会议规定,以通过英国伦敦格林威治天⽂台⼦午仪中⼼的经线为0°经线。从0°经线往东叫东经,往西叫西
经,东、西各分180°。习惯上以西经20°和东经160°为分界把地球分为东西两个半球。假如从地轴的正中间将地球切成南北两半,上边的
⼀半叫北半球,下边的⼀半叫南半球。被切的这个平⾯,叫⾚道⾯。⾚道⾯与地球表⾯相交的线叫⾚道。纬线从⾚道往两极越来越短,到了
两极就缩⼩成⼀个点了。科学家们把⾚道定为0°纬线,从⾚道向两极各分为90°,⾚道以南叫南纬,⾚道以北叫北纬。在计算机或GPS上经
纬度经常⽤度、分、秒和度.度、分.分、秒.秒的混合⽅式进⾏表⽰,度、分、秒间的进制是60进制,度.度、分.分、秒.秒的进制是100进
制,换算时⼀定要注意。可以近似地认为每个纬度之间的距离是不变的111KM,每分间1.85KM,每秒间31.8M。经度间的距离随纬度增⾼逐
渐减⼩,可按以下公式计算:
经度1°长度=111.413cosφ⼀0.094cos3φ公⾥(纬度φ处)。
⼀般从GPS得到的数据是经纬度。经纬度有多种表⽰⽅法。
1.),度.度的⼗进制⼩数部分(5位)例如:31.12035º
2.),度.分.分的⼗进制⼩数部分(3位)例如31º10.335′
3.),度.分.秒例如31º12’42″
地球上任何⼀个固定的点都可以⽤确定的经纬度表⽰出来。
关于经纬度坐标转换的⽅法
⼀、⼗进制转换成经纬度
把经纬度转换成⼗进制的⽅法很简单
如下就可以了
DecimalDegrees=Degrees+minutes/60+seconds/3600
例:57°55’56.6″=57+55/60+56.6/3600=57.9323888888888
114°65’24.6″=114+65/60+24.6/3600=结果⾃⼰算!
如把经纬度(longitude,latitude)(205.395583333332,57.9323888888888)
转换据成坐标(Degrees,minutes,seconds)(205°23’44.1″,57°55’56.6″)。
步骤如下:
1,直接读取”度”:205
2,(205.395583333332-205)*60=23.734999999920得到”分”:23
3,(23.734999999920-23)*60=44.得到”秒”:44.1
采⽤同样的⽅法可以得到纬度坐标:57°55’56.6″
好⼤⼀篇,都是别的地⽅copy过来的!
使⽤的gps模块返回的数据格式是0183gps协议,返回的⼗进制经纬度,在地图显⽰需以上转换
将距离换算成经纬度,有误差。
/**
*某点的经纬度,求距已知点⼀定距离并和已知点所在⽔平线成⼀定⾓度的另⼀点的经纬度
*@paramtype$distance两点间距离
*@paramtype$longitude原点经度
*@paramtype$latitude原点维度
*@paramtype$angle第⼀个点到第⼆个点的⾓度
*@returntype
*/
publicfunctiongetLongLat($distance,$longitude,$latitude,$angle){
return[
'longitude'=>$longitude+($distance*sin($angle*M_PI/180))/(111*cos($latitude*M_PI/180)),
'latitude'=>$latitude+($distance*cos($angle*M_PI/180))/111
];
}