@ Postbird

email:ptbird@yeah.net >

website:www.ptbird.cn >

本页面采用 bootcss cdn服务的bootstrap&jquery,如页面显示不正常或jquery无反应,请确认网络连接正确。

POSTBIRD:There I am ,in the world more exciting!

体验一 DMS | DM to D:

注:1、将gps数据转换成小数点格式即度格式: W 39°55′44″->39.9288888885 或 39°55.7333 ' N ->39.9288888885
注: 2、其中: W S N E 分别表示经纬度方向 返回结果中 W S 将返回负值

体验二 D to DMS:

注:1、将小数点格式即度格式转换成gps数据中的DMS格式: 39.9288888885->W 39°55′44″
注: 2、其中: W S N E 分别表示经纬度方向

选择经纬度方向:

体验三 D to DM:

注:1、将小数点格式即度格式转换成gps数据中的DM格式: 39.9288888885->W 39°55.7333′
注: 2、其中: W S N E 分别表示经纬度方向

选择经纬度方向:

一、文件引入:<script src="./gpsToDu.js"><script>

二、文件说明:

文件中有三个函数分别为

gpsToDu(gpsStr) / 将DMS 或 DM 抓换成 D

duToGpsDMS(duStr,duDir) / 将D 抓换成 DMS

duToGpsDM(duStr,duDir) / 将D 抓换成 DM

三、函数调用: 以第一个体验举例

$('#gpsToDuBtn').click(function(){ var str1=$('#gpsToDuInputId').val(); $('#gpsToDuSpanId').text(gpsToDu(str1)[1]); });

一、开放使用,您可以在此基础上按需求调整或将函数粘贴出以减少get请求数量。

二、您可以在此基础上二次包装并再次进行发布。

/** Created by postbird on 2016/4/1.  ...*/
/**
 *      @postbird
 *      1、本插件采用js编写,可直接将函数复制到个人js文件,减少get请求数
 *      2、author:powered by postbird
 *      3、email: ptbird@yeah.net
 *      4、site:http://www.ptbird.cn
 * */
/**
 文件说明:将gps的坐标转换成度形式的坐标方便计算 gpsToDu.js
 功能说明:
        将str1 和 str2 形式的坐标转换成 str3形式  【 度分秒格式和度分格式 转换成 度格式 】
             var str1="W 39°55′44″";//d-m-s  或者  str1="39°55′44″ W";
             var str2="N 39°55.7333′";//d-m   或者  str2="39°55.7333′ E";
             to:
             var str3="39.9288888885"; // d
 */
/**
 *  函数使用说明:
 *      1、直接调用函数  gpsToDu(gpsStr);
 *  返回说明: 返回结果数组
 *      1 gpsDu[0] 表示方向 ,小写字母 s w e n
 *      2 gpsDu[1] 表示计算的结果 , 数字-19.8222222
 * */
/**
 *  优点: 自动处理空格与其他无关字符,只处理表示方向、小数点、数字三种字符
 *  缺点: 小数点必须为半角的小数点 .  不能是全角小数点
 * */
function gpsToDu(gpsStr){
    gpsStr=gpsStr.toLowerCase();
    gpsStr=gpsStr.replace(/\s+/g,"");
    var tempStrArray=new Array();
    var flag=1;
    var lastFlag=0;
    var strLength=gpsStr.length;
    var gpsDu=new Array();
    var gpsDir;
    var tempcount=0;
    var tempString="";
    var tempPointFlag=0;
    if (gpsStr[0] == 'w' || gpsStr[0] == 's') {
        flag = -1;
        lastFlag=0;
        gpsDir=gpsStr[0];
    } else if (gpsStr[strLength - 1] == 'w' || gpsStr[strLength - 1] == 's') {
        flag = -1;
        lastFlag=1;
        gpsDir=gpsStr[strLength - 1];
    }
    for(var i=0;i<=strLength;i++){
        if(gpsStr[i]>='0' && gpsStr[i]<='9') {
          tempString += gpsStr[i];
            continue;
        }else if(gpsStr[i]=='.'){
            tempStrArray[tempcount]=tempString;
            tempString="";
            tempcount++;
            tempStrArray[tempcount]='.';
            tempPointFlag=1;
            tempcount++;
        }else if(tempString.length>0){
            tempStrArray[tempcount]=tempString;
            tempString="";
            tempcount++;
        }
    }
    if(tempPointFlag==0){
        var num1=parseInt(tempStrArray[0],10);
        var num2=parseInt(tempStrArray[1],10);
        var num3=parseInt(tempStrArray[2],10);
        console.log(num1+'  '+num2/60+' '+num3/(60*60));
        gpsDu[1]=num1+num2/60+num3/(60*60);
        gpsDu[1]=gpsDu[1]*flag;
        gpsDu[0]=gpsDir;
    }else if (tempPointFlag==1){
        var num1=parseInt(tempStrArray[0],10);
        var num2=parseFloat(tempStrArray[1]+'.'+tempStrArray[3],10);
        gpsDu[1]=num1+num2/60;
        gpsDu[1]=gpsDu[1]*flag;
        gpsDu[0]=gpsDir;
    }
    return gpsDu;
}

function duToGpsDMS(duStr,duDir){
    duStr=duStr.toLowerCase();
    duStr=duStr.replace(/\s+/g,"");
    duDir=duDir.toUpperCase();
    var strLength=duStr.length;
    var tempString="";
    var tempStrArray=new Array();
    var tempCount=0;
    var tempPointFlag=0;
    var gpsDMS;
    for(var i=0;i<=strLength;i++){
        if(duStr[i]>='0' && duStr[i]<='9') {
            tempString += duStr[i];
            continue;
        }else if(duStr[i]=='.'){
            tempStrArray[tempCount]=tempString;
            tempString="";
            tempCount++;
            tempStrArray[tempCount]='.';
            tempPointFlag=1;
            tempCount++;
        }else if(tempString.length>0){
            tempStrArray[tempCount]=tempString;
            tempString="";
            tempCount++;
        }
    }
    if(tempPointFlag==1){
        var num1=tempStrArray[0];
        var num2=parseFloat('0'+tempStrArray[1]+ tempStrArray[2],10)*60;
        var num3=parseInt(parseFloat((num2-parseInt(num2,10))*60,10),10);
        num2=parseInt(num2,10);
        console.log(tempStrArray);
        console.log(num1+"   "+num2+"   "+num3+ " ");
        gpsDMS=duDir+" "+num1+"°"+num2+"′"+num3+"″";
        //gpsDMS=+num1+"°"+num2+"′"+num3+"″"+" "+duDir;
        // console.log(gpsDMS);
    }
    return gpsDMS;
}
function duToGpsDM(duStr,duDir){
    duStr=duStr.toLowerCase();
    duStr=duStr.replace(/\s+/g,"");
    duDir=duDir.toUpperCase();
    var strLength=duStr.length;
    var tempString="";
    var tempStrArray=new Array();
    var tempCount=0;
    var tempPointFlag=0;
    var gpsDM;
    for(var i=0;i<=strLength;i++){
        if(duStr[i]>='0' && duStr[i]<='9') {
            tempString += duStr[i];
            continue;
        }else if(duStr[i]=='.'){
            tempStrArray[tempCount]=tempString;
            tempString="";
            tempCount++;
            tempStrArray[tempCount]='.';
            tempPointFlag=1;
            tempCount++;
        }else if(tempString.length>0){
            tempStrArray[tempCount]=tempString;
            tempString="";
            tempCount++;
        }
    }
    if(tempPointFlag==1){
        var num1=tempStrArray[0];
        var num2=parseFloat('0'+tempStrArray[1]+ tempStrArray[2],10)*60;
        gpsDM=duDir+" "+num1+"°"+num2+"′";
        //gpsDM=+num1+"°"+num2+"′"+" "+duDir;
        // console.log(gpsDM);
    }
    return gpsDM;
}
               
Powered by postbird . ©2016