当前位置:网站首页>批量转换经纬度的网页实现方法

批量转换经纬度的网页实现方法

2022-08-09 10:29:00 新月清光

第一步:注册免费域名
利用的虚拟机和域名来自于该网站,可以进行注册申请。
在这里插入图片描述

第二步:代码修改
原始代码部分省略,可以从最基本的hello world网页开始学习。
利用免费空间发布网站,发布页面上会自动添加以下内容,为了不影响使用,我们应该将该内容隐藏。
在这里插入图片描述
利用浏览器查看网页源代码,发现内容存在于标签a内容,因此需要将该标签隐藏,隐藏前确保页面代码中没有其他a标签,由于代码中其他处存在a,因此不能使用a标签。由于a存在于center中,代码中其他地方没有使用,因此选择center。
在这里插入图片描述
因此在html代码中加入隐藏内容,使用了jquery引用,因此需要在头文件中引入jquery的js文件,函数如下:

function func(){
$("center").hide();
  };

在网页一开始加载时执行该函数,方法如下:

$(document).ready(function(){ 
func();
});

如上操作可以解决,代码上传该网站,网页带有该网页广告的问题,结果如下图。
在这里插入图片描述
为了避免他人查看该网站代码,因此需要在该网页前面添加如下jsp语句,屏蔽掉右键、复制、选择等操作。

<script> 
document.oncontextmenu=new Function("return false") 
document.onselectstart=new Function("return false") 
</script>

虽然如此,但是该网页在制作的时候有参考他人代码,参考网站如下:
在这里插入图片描述
该网页只能进行单个经纬度坐标的转换,可以对该功能拓展,增加批量转换经纬度的功能,问题在于,jquery中不支持表格的复制粘贴,因此需要找到一个能读取excel的插件,实现数据的批量导入,插件的引用如下。

<script src="http://oss.sheetjs.com/js-xlsx/xlsx.full.min.js"></script>

对单点转换经纬度的函数进行修改,循环操作,批量转换经纬度。
度转度分秒的代码如下:

<script>
     /*
 FileReader共有4种读取方法:
1.readAsArrayBuffer(file):将文件读取为ArrayBuffer。
2.readAsBinaryString(file):将文件读取为二进制字符串
3.readAsDataURL(file):将文件读取为Data URL
4.readAsText(file, [encoding]):将文件读取为文本,encoding缺省值为'UTF-8'
                         */
ar wb;//读取完成的数据
var rABS = false; //是否将文件读取为二进制字符串
function importf(obj) {//导入
                if(!obj.files) {
                    return;
                }
                var f = obj.files[0];
                var reader = new FileReader();
                reader.onload = function TDFM(e) {
                    var data = e.target.result;
                    if(rABS) {
                        wb = XLSX.read(btoa(fixdata(data)), {//手动转化
                            type: 'base64'
                        });
                   } else {         
              wb = XLSX.read(data,
		{
                            type: 'binary'
                        });
                    }
                    //wb.SheetNames[0]是获取Sheets中第一个Sheet的名字
                    //wb.Sheets[Sheet名]获取第一个Sheet的数据            
                   //document.getElementById("demo").innerHTML= JSON.stringify( XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]) );
                    json = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]);
                    var RESY=null;
                     var RESX=null;
		for(i=0;i<json.length;i++){
                      resultY = ChangeToDFM(json[i].纬度);
                      resultX = ChangeToDFM(json[i].经度);
                      if(RESY==null){
                                RESY = "纬度" +"<br/>"+ resultY ;  
                                RESX = "经度" +"<br/>"+ resultX ;
                      }else{
                                RESY = RESY +"<br/>"+resultY ;
                                RESX = RESX +"<br/>"+resultX ;
                                 }
                      }
                     document.getElementById("left").innerHTML = RESX;
                     document.getElementById("right").innerHTML = RESY;               
                };
                if(rABS) {
                 reader.readAsArrayBuffer(f);        
      } else {
             reader.readAsBinaryString(f);
                }           
}
           function fixdata(data) { //文件流转BinaryString
                var o = "",
                    l = 0,
                    w = 10240;
                for(; l < data.byteLength / w; ++l) o +=
		String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)));
                o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)));
                return o;           
}
                  //转换经纬度
                          function ChangeToDFM(du)
                          {
                                   //var du = document.getElementById("input_du").value;
                                   var str1 = du.split(".");
                                   var du1 = str1[0];
                                   var tp = "0."+str1[1]
                                   var tp = String(tp*60);             //这里进行了强制类型转换
                                   var str2 = tp.split(".");
                                   var fen =str2[0];
                                   tp = "0."+str2[1];
                                   tp = tp*60;
                                   var miao = tp.toFixed(4);
                                   if(str1[1]==null){
                                            result = du1+"°"
                                   }else if(str2[1]==null){
                                            result = du1+"°"+fen+"'"
                                   }else{
                                   result = du1+"°"+fen+"'"+miao+"\"";
                                   }
                                   return result;
                          }
</script>

结果如下:
在这里插入图片描述
在这里插入图片描述

第三步:网页上传
利用工具8UFtp工具,地址和账户处输入内容如下:
在这里插入图片描述
密码为自己的登陆密码。然后点击链接,看右下角的提示信息,如果连接成功则,可以进行文件的上传。
在这里插入图片描述
本教程中,结果就三个html文件,(实际项目中不可能这么简单)。右键点击上传,如果中间右侧部分出现网页内容,则成功。注意:主html文件一定要改成index.html文件。
上传完成后,一定要该密码,之后才能打开自己上传的网页。

欢迎大家使用该经纬度转换工具,网址为:http://yzmv587.cn3v.net/index.html
建议使用谷歌浏览器。人生中第一份博客教程,欢迎大家转载。

原网站

版权声明
本文为[新月清光]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_42464154/article/details/84452122