json and ajax code Memo...

来源:互联网 发布:js 变量字符串拼接 编辑:程序博客网 时间:2024/04/28 17:18

批量查询给定地址的经纬度的HTML代码

<!DOCTYPE html ><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><meta name="viewport" content="initial-scale=1.0, user-scalable=no" /><script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=3h025GhfUrYLgqDf3rDP8a2o"></script><title>获取城市/街道对应的经纬度数据</title><style type="text/css">body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;}</style></head><!--  js part.--><script type="text/javascript">var file ="";var geodata="";var latilongArr={};var data2write="";function checkTPFile(){file = document.getElementById("geofile").files[0];if (!file){      alert("请上传待查询经纬度的城市文件列表(csv/txt)");      return ;  } else {          if (file.type.match('.csv') || file.type.match('.txt')) {              alert("文件必须是text(txt,csv)");              infile = "";              return ;          }      }  readDataFromFile();  }function readDataFromFile(){if(!file){alert("尚未选择文件!");return;}if (! window.FileReader ) {      alert("Not supported by your browser!");  }var reader = new FileReader(); reader.onloadend  = function (evt) {geodata = evt.target.result;if (geodata ||geodata!=""){queryLatiAndLong();//Latitude and longitudewriteDataIntoFile(geodata,latilongArr);}else{alert("The file is empty!");}} reader.onerror=function(e){alert(e.error.name )}var x = reader.readAsText(file,'gb2312');}String.prototype.trim=function() {      return this.replace(/(^\s*)|(\s*$)/g,'');  }; function queryLatiAndLong(){latilongArr=[];// clear the arrayvar lineArr = new Array();lineArr = geodata.split('\n');document.getElementById("lines").innerHTML="总共条数:"+lineArr.length;if (lineArr.length>60)alert("批量查询数目超过60,建议将文件切分后查询!\r\n查询量过大将导致错误应答或远程系统不响应!");document.getElementById("statusLine").innerHTML="文件共计"+lineArr.length+"个地址";var map = new BMap.Map("map");var localSearch =  new BMap.LocalSearch(map);localSearch.setSearchCompleteCallback(function (searchResult) {  var poi = searchResult.getPoi(0);var keyword=searchResult.keyword;var jsonObj={};jsonObj.keyword=keyword;if (poi){var res = ","+poi.point.lng + "," + poi.point.lat;jsonObj.value=res;}else{jsonObj.value=",-1,-1";}latilongArr.push(jsonObj);writeDataIntoFile(geodata,latilongArr);var msg = "目前已解析"+latilongArr.length+"个地址的经纬度信息。";if (latilongArr.length==lineArr.length)msg+="  解析完成!";document.getElementById("statusLine").innerHTML=msg;});for (key in lineArr){keyword = lineArr[key].trim().split(",")[0];localSearch.search(keyword);}}function querySingle(localSearch,keyword,label){localSearch.search(keyword);}function refreshData(){writeDataIntoFile(geodata,latilongArr);}function writeDataIntoFile(geodata,latilongArr){var wfile=file+".lldata.txt";var i =0;var line="";data2write="";lineArr = geodata.split('\n');for(i in latilongArr){ data2write+=latilongArr[i].keyword+latilongArr[i].value+"\r\n";}document.getElementById("txt").value=data2write;//document.getElementById("txt").innerHTML=data2write;}function copyResult() //windows copy to clipboard. not compatile with firefox.{obj=document.getElementById("txt");obj.select();js=obj.createTextRange();js.execCommand("Copy")alert("复制成功!");}function copy2Clipboard(txt){if(window.clipboardData){window.clipboardData.clearData();window.clipboardData.setData("Text",txt);}else if(navigator.userAgent.indexOf("Opera")!=-1){window.location=txt;}else if(window.netscape){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");}catch(e){alert("您的firefox安全限制限制您进行剪贴板操作!\nNo longer support copy to clipboard function.\nPlease press copy/select button and Ctrl+C.");return false;}var clip=Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);if(!clip)return;var trans=Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);if(!trans)return;trans.addDataFlavor('text/unicode');var str=new Object();var len=new Object();var str=Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);var copytext=txt;str.data=copytext;trans.setTransferData("text/unicode",str,copytext.length*2);var clipid=Components.interfaces.nsIClipboard;if(!clip)return false;clip.setData(trans,null,clipid.kGlobalClipboard);}}function copyCode(){var testCode=document.getElementById("txt").value;if(copy2Clipboard(testCode)!=false){alert("数据已经复制到粘贴板。  ");}elsereturn ;}</script><!--  display part.--><body style="background:#CBE1FF"><div id="toolbar" style="width:730px;margin:auto;" ><p>请上传待查询经纬度的城市文件:</p>  <p>格式要求:每行一个城市地址;.csv/.txt(建议批量查询城市数60,过多容易导致漏查或错误)</p><input type="file"  id="geofile" accept="text/plain"><input type="button" onclick="checkTPFile()" value="批次查询" ><input type="button" onclick="refreshData()" value="刷新" ><br></div><div id="result"></div><p></p><div id="lldata" value=""   style="margin:0 auto;                              width: 730px;                 height: 690px;                         border: 1px solid gray;                overflow:hidden;">查询结果如下    :<input type="button" onclick="copyCode()"  value="复制到CopyBoard">   <input type="button" onclick="copyResult()" value="Copy/Select"><p id="lines"> </p><p id="statusLine"></p><h4>     地址,经度Longtitude,纬度Latitude</h4><textarea id = "txt" name="txt" value="To be filled..."  rows="25" cols="85"></textarea></div><div id="map" style="display:none"></div></body></html>




0 0
原创粉丝点击