前些天有网友写信给我,交流了一下GPS座标的使用问题.其中谈到一点,如何将一组WGS84系统的经纬度座标转换成GPX文件.虽然方法很多,但为了方便,还是自己写了个小程序来用.与大家分享一下.
程序目标:
A.将下列形式存放在TXT文件中的WGS84座标转换为GPX路径文件.
23.1933401,113.3710702
23.1933303,113.3710904
23.1933500,113.3711200
23.1980000,113.4000000
........
B.程序运行环境尽量简单,无须特别安装.
C.代码开放,便于共享
于是乎....
我想到最简单的方法可能就是用JSP开发个嵌入于HTML的网页脚本,以浏览器作为平台运行.代码如下,用"记事本"编辑即可,另存为htm后缀名.
<html>
<head>
<SCRIPT>
//<!--
function onDownloadDone(s) {
var st1
var st2
var l
var nstr="<gpx>\n<trk>\n<trkseg>\n"
l=s.length
for(i=0;i<l;i=i 24){
st1=s.substr(i,10)
st2=s.substr(i 11,11)
nstr=nstr "<trkpt lat=\"" st1 "\" lon=\"" st2 "\"></trkpt>\n"
}
oText.value=nstr "\n</trkseg>\n</trk>\n</gpx>"
}
//-->
</SCRIPT>
<BODY>
<IE:DOWNLOAD ID="oDownload" STYLE="behavior:url(#default#download)" />
<input type="file" id="src">
<A HREF="#" onclick="if(src.value!='')oDownload.startDownload(src.value,onDownloadDone)">转换GPX</A>
<BR><BR>
<TEXTAREA ID=oText COLS=70 ROWS=10>
</TEXTAREA>
<input type="button" value="Save As" onclick="save.document.write(oText.value);save.document.execCommand('SaveAs',true,'text.gpx')">
<iframe name="save" style="display:none;"></iframe>
</body>
</html>
看明白了吗?下面是IE中运行的程序介面,注意要允许脚本程序的运行方可.

这个程序有个小问题有待改进,即目前默认转换的座标均为正数(即东经与北纬),为负数的情况这里没考虑,要修正的话源代码里改一点点就可以了.
程序本身并没什么亮点,也很简单.大家不妨试试看看如何增加更多的功能,例如算出路径的总里程.