经纬度坐标-度分秒和度之间的互转

思路分析

度分秒与度之间的转换

首先来看度分秒转度:112°18′37″=112+18/60+37/3600≈112.31027778

然后再来看度转度分秒:112.31027778取整获取112°,然后0.31027778×60=18.6166668,结果再次取整,获取18′,接着0.6166668×60=37.000008,然后结果约等于37″。

代码实现
functionDMSToDegree(coorStr){if(!coorStr)returnfalse;if(!('°')||!('′')||!('″'))returnfalse;constfirstArr=('°');constdegree=firstArr[0];constsecondArr=firstArr[1].split('′');constminute=secondArr[0];constthirdArr=secondArr[1].split('″');constsecond=thirdArr[0];returndegree+minute/60+second/3600;}functionDegreeToDMS(num){if(!num)return;constdegree=(num);constminute=((num-degree)*60);constsecond=((num-degree)*60-minute)*60;returndegree+'°'+minute+'′'+second+'″';}

Excel实现

度分秒转度:

=LEFT(A1,FIND("°",A1)-1)+MID(A1,FIND("°",A1)+1,FIND("′",A1)-FIND("°",A1)-1)/60+MID(A1,FIND("′",A1)+1,FIND("″",A1)-FIND("′",A1)-1)/3600

食用方法

度转度分秒(食用方法同上图):

=TEXT(INT(A1),"0")"°"TEXT(INT((A1-INT(A1))*60),"00")"′"TEXT(((A1-INT(A1))*60-INT((A1-INT(A1))*60))*60,"00.0")""""

关于VBA的转换方法请参考:

!!声明:本文并非原创,总结自互联网。

版权声明:本站所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请举报,一经查实,本站将立刻删除。

相关推荐