/** * [ONEMAP.M.projectController] * @return {[object]} */ define(['modDir/menu/myLayerActions'], function (_myLayerActions) { /** * 初始化并订阅事件 * @return {[type]} [description] */ function init(dm) { if (!status.initialized) { subscribe(); bindEvent(); status.initialized = true; } } function bindEvent() { } // 移除图层 function removeLayer(data) { if (data) { modValue.thematicControlHtml.remove(); map23DControl.tileLayer({ action: 'remove', guid: data }) data = null; // map2DViewer.map.removeControl(overLayerOpacityControl); overLayerOpacityControl = null; } ONEMAP.D.overLayerCount--; if (ONEMAP.D.overLayerCount == 0) { map2DViewer.map.setZoomScope(1, 19); } } /** * 设置界面 */ function setLayout() { } function layoutResize() { } // action type guid function myLayerControl(options) { switch (options.action) { case 'add': return addToMyLayer(options); break; case 'remove': return deleteDom(options); break; case 'update': return updateLayer(options); break; } } // 添加到自定义图层 function addToMyLayer(options) { // guid type(图层或图层组) name mod(是否无透明度) // console.log(options.layerData); // console.log("add"); var layerLength = $("#layerControlMenu .myLayers li").length; if (layerLength < map23DConfig.layerMaxLength) { // console.log(layerLength); var DOMid = options.DOM.guid; var mnAct = '
'; if (options.DOM.type == "layer" || options.DOM.type == "otherOrigin" || options.DOM.type == "thematicOrigin" || options.DOM.type == "sxlayer") { mnAct = '
'; } else if (options.mod == "taiShi") { mnAct = '
'; } else if (options.mod == "wxjd") { mnAct = '
'; } if (options.mod == "test") { mnAct = '
'; } var data; var layerFloor = "zid" + DOMid; if (options.mod == "test") { data = '
  • ×' + '' + '' + options.DOM.name + ''+ '' + JSON.stringify(options.layerData) + ''+ '
    ' + mnAct + '透明度:' + '' + '' + '
  • 显示开关'; // 设置层级 setFloor(layerFloor, options.DOM.name); } else if (options.mod == "otherOrigin" || options.mod == "thematicOrigin" || options.mod == "qixiang" || options.mod == "vectorOrigin") { data = '
  • ×' + '' + '' + options.DOM.name + '
    ' + mnAct + '透明度:' + '' + '
  • 显示开关'; // 设置层级 setFloor(layerFloor, options.DOM.name); } else if (options.mod == "taiShi") { data = '
  • ×' + '' + '' + options.DOM.name + '
    ' + mnAct // +'用户ID:' + '' + '' + '时间间隔:小时' + '
  • 显示开关'; } else if (options.mod == "zhihuiji") { data = '
  • ×' + '' + '' + options.DOM.name + '
    ' + mnAct + '

    历史轨迹查询

  • 显示开关'; } else if (options.mod == "wxjd") { data = '
  • ×' + '' + '' + options.DOM.name + '
    ' + mnAct // +'RDSSRNSSGPS' + 'RNSSGPS' + '
  • 显示开关'; } else if (options.mod == "sxlayer") { data = '
  • ×' + '' + '' + options.DOM.name + '
    ' + mnAct + '透明度:' + '' + '显示开关
  • '; } else if (options.mod == "QXSY") { data = '
  • ×' + '' + '' + options.DOM.name + '
    显示开关
  • '; } else if (options.mod == "MOXING") { data = '
  • ×' + '' + '' + options.DOM.name + ''+ ''+ ''+ '
    显示开关
  • '; } else { data = '
  • ×' + '' + '' + options.DOM.name + '
    显示开关
  • '; } $("#layerControlMenu .myLayers .mn-content").prepend(data); $("#layerControlMenu .myLayers .mn-content").children(":first").find("input").next().html(options.DOM.name); $("#layerControlMenu .myLayers").addClass('active'); $("#layerControlMenu .mn-content .mn-act").removeClass('active'); $("#layerControlMenu .myLayers .mn-content").children(":first").find("input:checkbox").attr("checked", true); $("#layerControlMenu .myLayers .mn-content").children(":first").find(".eye").addClass("checkTrue"); $("#layerControlMenu .myLayers .scroll-bar").mCustomScrollbar('update'); _myLayerActions.init(); // 判断图层控制是否显示 if (!$("#layerControlMenu").hasClass("bl")) { $("#layerControlMenu").addClass("bl"); $("#layerControlMenu .myLayers").addClass("active"); } // 添加时窗口位置如未显示则重置 if (parseInt($("#layerControlMenu").css("left")) < -100) { $("#layerControlMenu").css("left", "0"); } // 检查图层控制是否为空 ONEMAP.M.layerControlMenu.checkLayerNull(); return DOMid; } else { ONEMAP.C.publisher.publish({ type: 'warning', message: '图层数量已达上限' }, 'noteBar::add'); } } // 从我的图层中删除 function deleteDom(options) { // DOMid var guid = options.DOMid; var li = $("#layerControlMenu .myLayers .mn-content li"); for (var i = 0; i < li.length; i++) { // console.log(li.eq(i).attr("layer")); if (li.eq(i).attr("layer") == guid) { li.eq(i).remove(); } } ONEMAP.M.layerControlMenu.checkLayerNull(); // 检查我的图层是否为空 ONEMAP.M.myLayerActions.changeFloor(); // 删除时更新层级 } function updateLayer(options) { var guid = options.DOMid; var name = options.DOM.name; var li = $("#layerControlMenu .myLayers .mn-content li"); for (var i = 0; i < li.length; i++) { if (li.eq(i).attr("layer") == guid) { li.eq(i).find(".data-name").html(name); } } } // 设置层级 function setFloor(DOMID, name) { var li = $("#layerControlMenu .myLayers .mn-content li"); var liLength = li.length; var layer = $("#mapHolder #map2DWrap .leaflet-layer "); var layerLength = layer.length; for (var i = 0; i < liLength; i++) { li.eq(i).attr("zid", i); } layer.eq(layerLength - 1).addClass(DOMID); $("#mapHolder ." + DOMID).css("z-index", layerLength).attr("title", name); } // 检查当前图层数量 function checkLength() { var layerLength = $("#layerControlMenu .myLayers li").length; return layerLength; } function addZoom(minZoom, maxZoom, lat, lng, zoom, guid) { if (!isNaN(minZoom)) { ONEMAP.C.zoomArr.push(minZoom); } if (!isNaN(maxZoom)) { ONEMAP.C.zoomArr.push(maxZoom); } setZoom(lat, lng, zoom); // console.log(guid); if (guid) { var arr2w = { "name": guid, "minZoom": minZoom, "maxZoom": maxZoom } ONEMAP.C.zoomArr2w.push(arr2w); } // console.log(ONEMAP.C.zoomArr2w); } function deleteZoom(minZoom, maxZoom, guid) { if (minZoom) { ONEMAP.C.zoomArr.splice(jQuery.inArray(minZoom, ONEMAP.C.zoomArr), 1); ONEMAP.C.zoomArr.splice(jQuery.inArray(maxZoom, ONEMAP.C.zoomArr), 1); } if (guid) { // 删除一维数组对应 var zoomArr2w = ONEMAP.C.zoomArr2w; for (var i = 0; i < zoomArr2w.length; i++) { if (guid == zoomArr2w[i].name) { ONEMAP.C.zoomArr.splice(jQuery.inArray(zoomArr2w[i].minZoom, ONEMAP.C.zoomArr), 1); ONEMAP.C.zoomArr.splice(jQuery.inArray(zoomArr2w[i].maxZoom, ONEMAP.C.zoomArr), 1); } } // 删除二维数组对应 var newData = ONEMAP.C.zoomArr2w.filter(function (item) { return item['name'] != guid; }); ONEMAP.C.zoomArr2w = newData; } // console.log(ONEMAP.C.zoomArr); // console.log(ONEMAP.C.zoomArr2w); setZoom(); } function setZoom(clat, clng, czoom) { var mxZ = Math.max.apply(null, ONEMAP.C.zoomArr); var mnZ = Math.min.apply(null, ONEMAP.C.zoomArr); // console.log(mxZ); // console.log(mnZ); // console.log(clat); // console.log(ONEMAP.C.zoomArr); setTimeout(function () { map2DViewer.map.setZoomScope(mnZ, mxZ); }, 500) if (clat) { map23DControl.setView({ center: { lat: clat, lng: clng }, zoom: czoom }) } } function zoomActions(action, minZoom, maxZoom, lat, lng, zoom, guid) { // console.log("act zoom") switch (action) { case 'add': return addZoom(minZoom, maxZoom, lat, lng, zoom, guid); break; case 'remove': return deleteZoom(minZoom, maxZoom, guid); break; } } /** * 注册订阅 * @type {Function} * 推送:ONEMAP.C.publisher.publish(options,'moduleName::type'); * 订阅:ONEMAP.C.publisher.subscribe(layoutResize,'sideBarLayoutChange'); */ function subscribe() { ONEMAP.C.publisher.subscribe(layoutResize, 'menuListClick'); // ONEMAP.C.publisher.subscribe(remove, 'cleanMap'); } /** * 取消订阅 * @type {Function} * 取消订阅:ONEMAP.C.publisher.unSubscribe(layoutResize,'sideBarLayoutChange'); */ function unSubscribe() { } return ONEMAP.M.myLayers = { init: init, myLayerControl: myLayerControl, checkLength: checkLength, zoomActions: zoomActions } });