define([ 'html!lgDir/gridLayer', 'css!lgDir/gridLayer' ], function(tplLayout) { // L.ZoomViewer = L.Control.extend({ // onAdd: function(){ // var gauge = L.DomUtil.create('div'); // gauge.style.width = '30px'; // gauge.style.background = 'rgba(255,255,255,1)'; // gauge.style.textAlign = 'center'; // gauge.style.margin = '77px 0 0 12px'; // gauge.style.height = '30px'; // gauge.style.fontSize = '20px'; // gauge.style.lineHeight = '30px'; // map.on('zoomstart zoom zoomend', function(ev){ // gauge.innerHTML = map.getZoom(); // }) // return gauge; // } // }); var a = 0,b = 9,z = 0; function init(){ if($(".tools-layerGrid").hasClass("cur")){ $("#rule").show(); } else{ $("#rule").hide(); if(cl_start){ map2DViewer.map.removeLayer(cl_start); map2DViewer.map.removeLayer(polygon); } } // $("#rule").show(); } ONEMAP.C.publisher.subscribe(fullMap, 'layout::fullMap'); $("body").append(tplLayout); $("#rule h2").dragmove($("#rule")); // 全屏 function fullMap(option){ if(option){ $("#rule").hide(); }else{ $("#rule").show(); } } L.canvasLayer = L.GridLayer.extend({ createTile: function(coords){ // console.log("createTilea and z:"+z+"a:"+a+"b:"+b); var tile = L.DomUtil.create('canvas', 'leaflet-tile'); var ctx = tile.getContext('2d'); var size = this.getTileSize() tile.width = size.x tile.height = size.y // 将切片号乘以切片分辨率,默认为256pixel,得到切片左上角的绝对像素坐标 var nwPoint = coords.scaleBy(size); // 根据绝对像素坐标,以及缩放层级,反投影得到其经纬度 var nw = map2DViewer.map.unproject(nwPoint, z) // console.log(tile.width); ctx.lineWidth = 1; ctx.strokeStyle = 'red'; var lstCoord = Math.pow(2, coords.z) - 1; if(coords.z - z <= 1 && coords.z - z >= -1){ // console.log("coords.z: "+ coords.z); // console.log("z: "+ z); if(coords.z == z){ // 同级时直接绘制 ctx.beginPath(); ctx.moveTo(0, 0); ctx.lineTo(size.x-1, 0); ctx.lineTo(size.x-1, size.y-1); ctx.lineTo(0, size.y-1); ctx.closePath(); ctx.fillStyle = 'rgba(225,225,225,0.5)'; ctx.fillRect(0, 0, size.x, 70); ctx.font = "18px Arial"; ctx.fillStyle = 'black'; ctx.textAlign = 'left'; ctx.fillText(a+'-'+b+'-'+z+'-'+coords.x+'-'+coords.y+'.ptp', 40, 20); ctx.font = "14px Arial"; ctx.textAlign = 'left'; ctx.fillText('lat: ' + nw.lat.toFixed(6), 40, 40); // 纬度 ctx.fillText('lon: ' + nw.lng.toFixed(6), 40, 60); // 经度 } else{ // 非同级时 var lstCoord = Math.pow(2, coords.z) - 1; if(coords.z - z < 0 && coords.z - z > -2){ var mul = Math.pow(2, (z-coords.z)); for(var i=0;i 1){ xhr2 = ajax({ url: config.countServer+"/tileSizeData/"+fileName+"/", //请求地址 type: "POST", data: { "ptplist": JSON.stringify(tiles)}, dataType: "json", success: function (response, xml) { esc.innerHTML = "确定"; loading.style.display = "none"; var str = JSON.parse(response); // console.log(str); // console.log(str.total); if(str.total == -1){ lgPopUp_none.style.display = "block"; blackBoard.style.display = "block"; lgPopUp_total.style.display = "none"; } else{ lgPopUp_total.style.display = "block"; blackBoard.style.display = "block"; // alert("当前数据包总大小为:"+str.total); tileType.innerHTML = fileName; tileSize.innerHTML = str.total; } }, fail: function (status) { loading.style.display = "none"; console.log("post data err"); } }); } esc.onclick = function(){ if(esc.innerHTML == "取消"){ // xhr1.abort(); xhr2.abort(); esc.innerHTML = "确定"; } if(esc.innerHTML == "确定"){ lgPopUp_total.style.display = "none"; blackBoard.style.display = "none"; } } qd.onclick = function(){ lgPopUp_none.style.display = "none"; blackBoard.style.display = "none"; } } L.control.showNameList = function(mcrd,mz){ console.log(mcrd) var merc = new SphericalMercator({ size: 256 }); var minX = merc.xyz(mcrd, mz).minX; var maxX = merc.xyz(mcrd, mz).maxX; var minY = merc.xyz(mcrd, mz).minY; var maxY = merc.xyz(mcrd, mz).maxY; var nameList = new Array(); var tileList = new Array(); for(var i=minX;i<=maxX;i++){ for(var j=minY;j<=maxY;j++){ nameList.push(a+"-"+b+"-"+z+"-"+i+"-"+j+".ptp"); tileList.push(a+"-"+b+"-"+z+"-"+i+"-"+j); } } var contents = '

包名列表
×

' +'

'+ nameList.join('

' ) + '

'; var options = "
"; var shuchu = ''; // document.querySelector('.lgPopUp').innerHTML = contents+options; document.querySelector('.lgPopUp').innerHTML = contents+shuchu; document.querySelector('.lgPopUp').style.display = "block"; document.querySelector('.close').onclick = function(){ document.querySelector('.lgPopUp').style.display = "none"; } document.querySelector('.lgPopUp .output').addEventListener('click', saveFile); $(".lgPopUp .close").off("click").on("click",function(){ $(".lgPopUp").html("").hide(); }) // console.log("minX: "+merc.xyz(mcrd, mz).minX); // console.log("maxX: "+merc.xyz(mcrd, mz).maxX); // console.log("minY: "+merc.xyz(mcrd, mz).minY); // console.log("maxY: "+merc.xyz(mcrd, mz).maxY); // var cal = document.querySelector('.calculation button'); // cal.onclick = function(){ // var myselect=document.getElementById("choose"); // var index=myselect.selectedIndex; // selectedIndex代表的是你所选中项的index // // myselect.options[index].value; // var fileName = myselect.options[index].text; // L.control.request(fileName, tileList); // var lgPopUp_total = document.querySelector('.lgPopUp_total'); // var blackBoard = document.querySelector('.blackBoard'); // var tileType = document.querySelector('.lgPopUp_total .tileType'); // var tileSize = document.querySelector('.lgPopUp_total .tileSize'); // var loading = document.querySelector('.lgPopUp_total img'); // var esc = document.querySelector('.lgPopUp_total .esc'); // lgPopUp_total.style.display = "block"; // blackBoard.style.display = "block"; // tileType.innerHTML = fileName; // loading.style.display = "block"; // esc.innerHTML = "取消"; // tileSize.innerHTML = ""; // } } // require(['lgDir/gridLayer_obj'],function(){ // console.log("obj"); // bindEvents(); // }) // function bindEvents(){ var cl_start = new L.canvasLayer; cl_start.addTo(map2DViewer.map); // polygon var polygon = L.polygon([ [0, 0],[0, 0],[0, 0],[0, 0] ], {color: 'trasparent'}).addTo(map2DViewer.map); var rule = document.querySelector('#rule .rule'); // 分包规则 var levelSelect = document.querySelectorAll('#rule .level select'); // 分包级别(总) var diyBtn = document.querySelector('#rule .diyRules button'); // 确定自定义规则 var showGridBtn = document.querySelector('#rule .showGrid'); // 显示网格 var showRangeBtn = document.querySelector('#rule .showRange'); // 显示空间范围 var rangeInput = document.querySelectorAll('#rule .range input'); // 显示空间范围 var generateListBtn = document.querySelector('#rule .generateList'); // 生成包名列表 var activeBag = [[0,9,0],[10,14,7],[15,19,11]]; // 旧分包规则 var diyRules,scale,mz; // 自定义规则等 var mCrd = new Array(); // 包名列表参数 $('#rule .closeRule,.leaflet-contextmenu-item:contains("清空地图")').off("click").on("click",function(){ map2DViewer.map.removeLayer(cl_start); $("#rule").hide(); map2DViewer.map.removeLayer(polygon); $("#topBar .total-content .tools-layerGrid").removeClass("cur"); }) // $('.leaflet-contextmenu-item:contains("清空地图")').off('click', gridClear).on('click', gridClear) rule.onchange = function(){ var grade = rule.options[rule.selectedIndex].value; // 当前所选规则 for(var i=0;i 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); } } function fakeClick(obj) {   var ev = document.createEvent("MouseEvents");     ev.initMouseEvent("click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);     obj.dispatchEvent(ev);   }   function exportRaw(name, data) {     var urlObject = window.URL || window.webkitURL || window;     var export_blob = new Blob([data]);     var save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a")     save_link.href = urlObject.createObjectURL(export_blob);     save_link.download = name;     fakeClick(save_link);   }   function saveFile(){     var pv = document.querySelectorAll('.lgPopUp div.list p'); var mobileCode = ''; for(var i=0;i -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE浏览器 var isEdge = userAgent.indexOf("Windows NT 6.1; Trident/7.0;") > -1 && !isIE; //判断是否IE的Edge浏览器 if(isIE) { return "ie"; } else if(isEdge) { return "Edge"; } else{ return "-1";//非IE } } // } return ONEMAP.M.GridLayer = { init: init, }; })