/** * [ONEMAP.M.projectController] * @return {[object]} */ define(function (tplLayout) { /** * 初始化并订阅事件 * @return {[type]} [description] */ function init() { //if (!status.initialized) { subscribe(); bindEvent(); status.initialized = true; //} } var eyelook = { status: true } function bindEvent() { // 清空 $("#layerControlMenu .clearLayer").unbind('click').bind('click', function () { ONEMAP.M.myLayerActions.clearLayer(); ONEMAP.C.publisher.publish({ type: 'allRemove' }, 'legend:remove'); }) // 从我的图层中删除 $("#layerControlMenu .myLayers .close").off('click').on('click', function () { var guid = $(this).parent().parent().attr("layer"); ONEMAP.C.publisher.publish({ action: 'remove', guid: guid }, guid); // 从上部移除我的图层中的对应节点 var getClass = $(this).next().attr("class"); $(this).parent().parent().remove(); var legendUrl = $(this).parent().find('.legend').attr('curl'); // console.log(legendUrl); ONEMAP.C.publisher.publish({ type: legendUrl }, 'legend:remove'); // // 从上部移除我的图层中的对应节点 // var getClass = $(this).next().attr("class"); if (getClass) { var rmvClass = "." + getClass; // $(rmvClass).removeAttr("checked"); // 移除选中状态 $(rmvClass).next().removeClass('menu-select').addClass("menu-select-no"); // (新) $(rmvClass).removeClass(getClass); // 移除上部对应class } ONEMAP.M.layerControlMenu.checkLayerNull(); ONEMAP.M.myLayerActions.changeFloor(); // 移除zoom范围 var liName = $(this).parent().find(".data-name").text(); ONEMAP.M.myLayers.zoomActions('remove', '', '', '', '', '', liName); }) // 我的图层中复选框操作 $("#layerControlMenu .myLayers :checkbox").off("change").on("change", function () { var guid = $(this).parent().parent().attr("layer"); var eye = $(this).parent().parent().find(".eye"); if ($(this).is(":checked")) { ONEMAP.C.publisher.publish({ action: 'opacity', options: { opacity: 1 }, guid: guid }, guid); $(this).parents().filter("li").attr("eyelook", 0); if (!eye.hasClass("checkTrue")) { eye.addClass("checkTrue"); $(this).parent().parent().css({ "background": "url(../images/layout/zhenyan.png) 45px 16px / 21px no-repeat", "background-size": "20px" }); } } else { ONEMAP.C.publisher.publish({ action: 'opacity', options: { opacity: 0 }, guid: guid }, guid); $(this).parent().next().find(".chang").css("width", 0); $(this).parent().next().find(".yuan").css("left", 0); $(this).parents().filter("li").attr("eyelook", 1); // eyelook.status = false; if (eye.hasClass("checkTrue")) { eye.removeClass("checkTrue"); $(this).parent().parent().css({ "background": "url(../images/layout/biyan.png) 45px 16px / 21px no-repeat", "background-size": "20px" }); } } }) // 我的图层操作界面显隐 $("#layerControlMenu .gear").off('click').on('click', function () { if ($(this).parent().next().hasClass('active')) { $(this).parent().next().removeClass('active'); } else { $(this).parent().next().addClass('active'); } }) // 详情和收藏 $("#layerControlMenu .myLayers .layer-detail").off('click').on('click', function () { var layerObj = JSON.parse($(this).parent().prev().find(".data-save").html()); if (layerObj) { getShowInfo(layerObj); } }) $("#layerControlMenu .myLayers .layer-cale").off('click').on('click', function () { var layerObj = JSON.parse($(this).parent().prev().find(".data-save").html()); if (layerObj) { require(['modDir/user/userThematic'], function (userThematic) { userThematic.addThematic(layerObj); }); } }) // 透明度滑条 var mnAct = $('#layerControlMenu .myLayers .mn-content li .mn-act'); var yuan = $('#layerControlMenu .myLayers .mn-content li .yuan'); yuan.on('mousedown', function (event) { var e = event; if ($(this).parents().filter("li").attr("eyelook") == 1) { e.preventDefault(); } else { // 锁定当前索引 var idx = $(this).parent().parent().parent().index(); yuan = $('#layerControlMenu .myLayers .mn-content li .yuan').eq(idx).get(0); var op = $('#layerControlMenu .myLayers .mn-content li .op').eq(idx).get(0); var chang = $('#layerControlMenu .myLayers .mn-content li .chang').eq(idx).get(0); var yuanleft = 0; var event = event || window.event; var leftVal = event.clientX - this.offsetLeft; var that = this; var zid = $(this).parent().parent().parent().attr("zid"); var curLatyerId = $(this).parent().parent().parent().attr('layer'); if (mnAct.attr("setOp") == "yes") { // 拖动 document.onmousemove = function (event) { var event = event || window.event; yuanleft = event.clientX - leftVal; if (yuanleft < 0) yuanleft = 0; else if (yuanleft > op.offsetWidth - yuan.offsetWidth) yuanleft = op.offsetWidth - yuan.offsetWidth; chang.style.width = yuanleft + 'px'; yuan.style.left = yuanleft + "px"; var opt = 1 - parseInt(yuanleft / (op.offsetWidth - yuan.offsetWidth) * 100) / 100; // console.log(opt); // 设置当前图层透明度 ONEMAP.C.publisher.publish({ action: 'opacity', options: { opacity: opt }, guid: curLatyerId }, curLatyerId); //防止选择内容--当拖动鼠标过快时候,弹起鼠标,bar也会移动,修复bug window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty(); } } } }) document.onmouseup = function () { document.onmousemove = null; //弹起鼠标不做任何操作 } // 当前图层上移下移 $("#layerControlMenu .down").off('click').on('click', function () { var nd = $(this).parent().parent().parent(); var nxt = nd.next().html(); var length = $("#mapHolder #map2DWrap .leaflet-layer ").length - 1; var idx = length - nd.index(); // 当前图层索引值 if (typeof (nxt) != 'undefined' && nxt != "暂无图层数据") { nd.insertAfter(nd.next()); var curLatyerId = $(this).parent().parent().parent().attr('layer'); ONEMAP.C.publisher.publish({ action: 'down' }, curLatyerId); // ONEMAP.M.myLayerActions.changeFloor(); } else { ONEMAP.C.publisher.publish({ type: 'warning', message: '已移到最底部' }, 'noteBar::add'); } }) $("#layerControlMenu .up").off('click').on('click', function () { var nd = $(this).parent().parent().parent(); var prv = nd.prev().html(); if (typeof (prv) != 'undefined') { nd.insertBefore(nd.prev()); var curLatyerId = $(this).parent().parent().parent().attr('layer'); ONEMAP.C.publisher.publish({ action: 'up' }, curLatyerId); // ONEMAP.M.myLayerActions.changeFloor(); } else { ONEMAP.C.publisher.publish({ type: 'warning', message: '已移到最顶部' }, 'noteBar::add'); } }) //显示图例 $("#layerControlMenu .legend").unbind('click').bind('click', function () { var pictureUrl = $(this).attr('curl'); require(['modDir/menu/legend'], function (legend) { legend.init({ pictureUrl: pictureUrl }); }); }) //模型控制 $("#layerControlMenu .stereoscopic_set").unbind('click').bind('click', function () { var guid = $(this).parent().parent().attr("layer"); ONEMAP.C.publisher.publish({ action: 'set', guid: guid }, guid); }) } /** * 显示专题图详情 */ function getShowInfo(data) { // console.log(data); var guid = data.guid; var ajaxUrl = onemapUrlConfig.thematicDataServerUrl + '/production/metadata?production_id=' + guid; ONEMAP.V.loading.load(); $.ajax({ type: "get", dataType: 'jsonp', url: ajaxUrl, success: function (data) { ONEMAP.V.loading.loaded(); //添加专题图信息到地图容器中 addItemToContent(data.metadata); //console.log(data.metadata); }, error: function (data) { ONEMAP.V.loading.loaded(); ONEMAP.C.publisher.publish({ type: 'error', message: '获取地图数据失败!' }, 'noteBar::add'); } }); }; function addItemToContent(data) { $('#atlasInfoDetail').show(); var zIndex = ONEMAP.M.sideBar.getZIndex(); $('#atlasInfoDetail').css({ zIndex: zIndex }); $('#atlasInfoDetail .cover-content').empty(); $('
').appendTo($('#atlasInfoDetail .cover-content')); $('

' + data.map_name + '

').appendTo($('#atlasInfoDetail .cover-content')); $('

作者: ' + data.author + '

').appendTo($('#atlasInfoDetail .cover-content')); $('

创建时间: ' + data.created_time + '

').appendTo($('#atlasInfoDetail .cover-content')); $('

发布者: ' + data.publisher + '

').appendTo($('#atlasInfoDetail .cover-content')); $('

发布时间: ' + data.publication_date + '

').appendTo($('#atlasInfoDetail .cover-content')); $('

地图来源: ' + data.original_atlas + '

').appendTo($('#atlasInfoDetail .cover-content')); $('

最小缩放等级: ' + data.min_zoom_level + '

').appendTo($('#atlasInfoDetail .cover-content')); $('

最大缩放等级: ' + data.max_zoom_level + '

').appendTo($('#atlasInfoDetail .cover-content')); //$('

瓦片格式: '+data.image_format+'

').appendTo($('#atlasInfoDetail .content')); //$('

瓦片质量: '+data.image_quality+'

').appendTo($('#atlasInfoDetail .content')); $('

地图宽度: ' + data.map_image_width + '像素

').appendTo($('#atlasInfoDetail .cover-content')); $('

地图高度: ' + data.map_image_height + '像素

').appendTo($('#atlasInfoDetail .cover-content')); if (data.coordinate_system == 0) { data.coordinate_system = '无坐标图形' } $('

坐标系: ' + data.coordinate_system + '

').appendTo($('#atlasInfoDetail .cover-content')); $(".close").click(function () { $("#atlasInfoDetail").hide(); }) } /** * 设置界面 */ function setLayout() { } function layoutResize() { } /** * 注册订阅 * @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() { } // 更改层级 function changeFloor() { // console.log("2333"); var layer = $("#mapHolder #map2DWrap .leaflet-layer "); var layerLength = layer.length; var li = $("#layerControlMenu .myLayers .mn-content li"); var liLength = li.length; for (var i = 0; i < liLength; i++) { if (li.eq(i).attr("cg") == "true") { // console.log("congratulation"); var DOMID = "zid" + li.eq(i).attr("layer"); // console.log(DOMID); $("#mapHolder ." + DOMID).css("z-index", layerLength); layerLength--; } } } // 设置透明度 function setOpacity(zid, opt) { map23DControl.tileLayer({ action: 'update', guid: zid, layer: { opacity: opt } }) } function clearLayer() { $("#layerControlMenu").removeClass("bl"); var layerLis = $("#layerControlMenu .myLayers .mn-content li"); for (var i = 0; i < layerLis.length; i++) { var guid = $(layerLis[i]).attr("layer"); ONEMAP.C.publisher.publish({ action: 'remove', guid: guid }, guid); $(layerLis[i]).remove(); // 从上部移除我的图层中的对应节点 if (guid) { var rmvClass = "." + guid; // $(rmvClass).removeAttr("checked"); // 移除选中状态(旧) $(rmvClass).next().removeClass('menu-select').addClass("menu-select-no"); // (新) $(rmvClass).removeClass(guid); // 移除上部对应class } // 清空搜索結果列表 $("#placePanel .thematic-content .thematic-search-list li").attr("load", 0); // $('#thematicResultsList li.select').removeClass('select'); } ONEMAP.M.layerControlMenu.checkLayerNull(); map2DViewer.map.setZoomScope(1, 19); ONEMAP.C.layerLength = 0; ONEMAP.C.zoomArr = []; ONEMAP.C.zoomArr2w = []; } function checkLayerNull() { // 我的图层暂无数据时 if (typeof ($("#layerControlMenu .myLayers .mn-content li").eq(0).html()) == "undefined" || $("#layerControlMenu .myLayers .mn-content").text() == "") { $('#thematicResultsList li.select').removeClass('select'); // 解放缩放等级 map2DViewer.map.setZoomScope(1, 19); $("#layerControlMenu").removeClass("bl"); } } function checkChongMing(name) { var layerlistDe; // console.log(name); if (typeof ($("#layerControlMenu .myLayers .mn-content li").eq(0).html()) == "undefined" || $("#layerControlMenu .myLayers .mn-content").text() == "") { return true; } else { layerlistDe = $("#layerControlMenu .myLayers .mn-content li"); for (var i = 0; i < layerlistDe.length; i++) { if (name == layerlistDe.eq(i).find(".data-name").text()) { // console.log("false") return false; // console.log(layerlistDe.eq(i).find(".data-name").text()); } } return true; } } return ONEMAP.M.myLayerActions = { init: init, checkLayerNull: checkLayerNull, clearLayer: clearLayer, changeFloor: changeFloor, checkChongMing: checkChongMing } });