123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- var rule = document.querySelector('.rule'); // 分包规则
- var levelSelect = document.querySelectorAll('.level select'); // 分包级别(总)
- var diyBtn = document.querySelector('.diyRules button'); // 确定自定义规则
- var showGridBtn = document.querySelector('.showGrid'); // 显示网格
- var showRangeBtn = document.querySelector('.showRange'); // 显示空间范围
- var rangeInput = document.querySelectorAll('.range input'); // 显示空间范围
- var generateListBtn = document.querySelector('.generateList'); // 生成包名列表
- var activeBag = [[0,9,0],[10,14,7],[15,19,11]]; // 旧分包规则
- var diyRules,scale,mz; // 自定义规则等
- var mCrd = new Array(); // 包名列表参数
- rule.onchange = function(){
- var grade = rule.options[rule.selectedIndex].value; // 当前所选规则
- for(var i=0;i<levelSelect.length;i++){
- levelSelect[i].classList.remove("active");
- }
- switch(parseInt(grade)){
- case 0:
- document.querySelector('.oldLevel').classList.add("active");
- document.querySelector('.diyRules').style.display = "none";
- document.querySelector('.level').style.display = "block";
- activeBag = [[0,9,0],[10,14,7],[15,19,11]]; // 旧分包规则
- diyRules = "";
- break;
- case 1:
- document.querySelector('.newLevel').classList.add("active");
- document.querySelector('.diyRules').style.display = "none";
- document.querySelector('.level').style.display = "block";
- activeBag = [[0,7,0],[8,11,3],[12,15,7],[16,19,11],[20,22,15]]; // 新分包规则
- diyRules = "";
- break;
- case 2:
- document.querySelector('.diyRules input').value = "";
- document.querySelector('.diyRules').style.display = "inline-block";
- document.querySelector('.level').style.display = "none";
- activeBag = document.querySelector('.diyRules input').value.replace(/[\ |\[|\]]/g,""); // 自定义分包规则
- statu = 2;
- break;
- }
- }
- diyBtn.onclick = function(){
- diyRules = document.querySelector('.diyRules input').value; // 自定义规则
- if(diyRules == ""){
- alert("请输入自定义规则");
- }
- else{
- var checkStatu = true;
- diyRules = diyRules.replace(/[\ |\[|\]]/g,"").split(",");
- console.log("diyRules:"+diyRules);
- if(diyRules.length % 3 != 0){
- alert("自定义规则位数不正确或格式有误,请检查");
- checkStatu = false;
- }
- for(var j=0;j<diyRules.length;j++){
- if(isNaN(diyRules[j])){
- checkStatu = false;
- alert("自定义规则有误,请检查格式");
- break;
- }
- }
- for(var m=1;m<diyRules.length-2;m+=3){
- if(diyRules[m]-diyRules[m+2] != -1){
- checkStatu = false;
- alert("自定义规则分包有误,请检查数值");
- break;
- }
- }
- if(checkStatu){
- document.querySelector('.diyLevel').innerHTML = "";
- for(var i=2;i<diyRules.length;i+=3){
- var opt = document.createElement('option');
- var t = diyRules[i-2]+"-"+diyRules[i-1]+"-"+diyRules[i];
- opt.innerHTML = t; // 新级别名称
- opt.value = diyRules[i]; // 赋值value方便显示
- document.querySelector('.diyLevel').appendChild(opt);
- }
- document.querySelector('.diyLevel').classList.add("active");
- document.querySelector('.level').style.display = "block";
- }
- }
- }
- showGridBtn.onclick = function(){
- var levelAct = document.querySelector('.level .active');
- z = levelAct.options[levelAct.selectedIndex].value; // 所选分包级别
- for(var i=0;i<activeBag.length;i++){
- if(activeBag[i][2] == z){
- a = parseInt(activeBag[i][0]);
- b = parseInt(activeBag[i][1]);
- }
- }
- if(diyRules != "" && diyRules != undefined){
- console.log(diyRules);
- activeBag = diyRules;
- if(diyRules == undefined){
- alert("请输入分包范围");
- }
- for(var i=2;i<activeBag.length;i+=3){
- if(activeBag[i] == z){
- a = parseInt(activeBag[i-2]);
- b = parseInt(activeBag[i-1]);
- }
- }
- }
- console.log("a:"+a);
- console.log("b:"+b);
- // console.log("base:"+z);
- scale = L.control.createTilePackage(z,a,b);
- }
- showRangeBtn.onclick = function(){
- var levelAct = document.querySelector('.level .active');
- var z = levelAct.options[levelAct.selectedIndex].value; // 所选分包级别
- var crds = new Array(); // 传入的坐标
- var stat = true;
- var lng1 = parseFloat(document.querySelector('.lng1').value);
- var lng2 = parseFloat(document.querySelector('.lng2').value);
- var lat1 = parseFloat(document.querySelector('.lat1').value);
- var lat2 = parseFloat(document.querySelector('.lat2').value);
- for(var i=0;i<rangeInput.length;i++){
- if(rangeInput[i].value == "" || isNaN(rangeInput[i].value)){
- alert("请输入完整坐标(数字)");
- crds = "";
- stat = false;
- break;
- }
- }
- if(stat){
- if(lng1 > 180 || lng1 < -180 || lng2 > 180 || lng2 < -180){
- alert("请输入正确的经度范围,合法取值范围为:经度[-180,180]");
- stat = false;
- }
- else if(lng2 <= lng1){
- alert("请输入正确的经度范围,右下角经度须大于左上角经度");
- stat = false;
- }
- else if(lat1 > 90 || lat1 < -90 || lat2 > 90 || lat2 < -90){
- alert("请输入正确的纬度范围,合法取值范围为:纬度[-90,90]");
- stat = false;
- }
- else if(lat1 <= lat2){
- alert("请输入正确的纬度范围,左上角纬度必须大于右下角纬度");
- stat = false;
- }
- else{
- crds.push(lng1,lng2,lat1,lat2);
- }
- }
-
- if(crds.length == 4){
- L.control.fitBds(crds,z);
- }
- // console.log(crds);
- }
- generateListBtn.onclick = function(){
- if(mCrd == ""){
- alert("请先显示空间范围");
- }
- else{
- L.control.showNameList(mCrd,mz);
- }
- }
|