/** * [ONEMAP.M.toolsBar] * @return {[object]} */ define([ 'html!templates/toolsBar', 'css!styles/toolsBar', ], function (tplLayout, tplLayout2) { /** * 状态类型 */ var status = { toolsShow: false, toolsShowGrid: false, toolSquareGrid: false, showTuFu: false, }; /** * 数据存储 */ var modValue = { mearsuringAppendToMyLayer: null } function init() { setLayout(); //工具栏事件绑定 bindEvents(); $(window).resize(function () { layoutResize(); }); subscribe(); }; function setLayout() { $(tplLayout).appendTo($("#toolsBar")); var curWindowHeigth = $(window).height(); if (!map23DData.show3DAlert) { $("#toolsBar").addClass('chrome'); } map23DChangeControlShow() }; function map23DChangeControlShow() { if (map23DData.display.map2D) { $("#toolsBar .toolist[mapStyle='2D']").css({ display: "inline-block" }) $("#toolsBar .toolist[mapStyle='3D']").css({ display: "none" }) } else { $("#toolsBar .toolist[mapStyle='2D']").css({ display: "none" }) $("#toolsBar .toolist[mapStyle='3D']").css({ display: "inline-block" }) } } function layoutResize() { if (map23DData.display.map2D) { $("#toolsBar .toolist[mapStyle='2D']").css({ display: "inline-block" }) $("#toolsBar .toolist[mapStyle='3D']").css({ display: "none" }) } else { $("#toolsBar .toolist[mapStyle='2D']").css({ display: "none" }) $("#toolsBar .toolist[mapStyle='3D']").css({ display: "inline-block" }) // gridClear(); } }; function bindEvents() { $("#toolsBar .bg").unbind('click').bind('click', function () { if ($("#toolsBar .tools-bar-content li.tools-area").hasClass('cur')) { $("#toolsBar .tools-bar-content li.tools-area").click(); } if (status.toolsShow) { $("#toolsBar .tools-ul").hide(); $("#toolsBar").removeClass('cur'); status.toolsShow = false; ONEMAP.C.publisher.publish('hide', 'tools:active'); $("#measuringText").text('').hide(); //测量提示 $(".mearsuringGroup .close").click(); } else { // if (map23DData.display.map2D) { // $("#toolsBar .toolist[mapStyle='2D']").css({ // display: "inline-block" // }) // } else { // $("#toolsBar .toolist[mapStyle='2D']").css({ // display: "none" // }) // } map23DChangeControlShow() $("#toolsBar .tools-ul").show(); $("#toolsBar").addClass('cur'); status.toolsShow = true; $("#userSideBar").hide(); //关掉我的收藏 } }) //23D切换 /*$("#toolsBar .tools-ul .toolist").unbind('click').bind('click',function(){ var mapStyle = $(this).attr('mapStyle'); if(mapStyle == '2D'){ ONEMAP.C.publisher.publish('2D', 'layout::mapStyle'); }else if(mapStyle == '3D'){ ONEMAP.C.publisher.publish('3D', 'layout::mapStyle'); } })*/ //全局搜索 // $(".tools-search").unbind('click').bind("click",function(){ // require(['modDir/tools/toolPlaceSearch'], function(toolPlaceSearch) { // toolPlaceSearch.changSearchType('pac'); // toolPlaceSearch.init(); // }); // }); //视野内搜索 $(".tools-serchView").unbind('click').bind('click', function () { require(['modDir/tools/toolPlaceSearch'], function (toolPlaceSearch) { toolPlaceSearch.changSearchType('bounds'); toolPlaceSearch.init(); }); }); //标注工具 $(".tools-marker").unbind('click').bind('click', function () { ONEMAP.C.publisher.publish('2D', 'layout::mapStyle'); require(['modDir/tools/toolMarkPoint'], function (toolMarkPoint) { toolMarkPoint.init(); }); }); //测距工具 $('.tools-distance').unbind('click').bind('click', function () { if (modValue.mearsuringAppendToMyLayer) { require(['modDir/tools/toolMeasuringDistance'], function (toolMeasuringDistance) { toolMeasuringDistance.init(); }); } else { var layerLength = ONEMAP.M.myLayers.checkLength(); if (layerLength < map23DConfig.layerMaxLength) { require(['modDir/tools/toolMeasuringDistance'], function (toolMeasuringDistance) { toolMeasuringDistance.init(); }); } else { ONEMAP.C.publisher.publish({ type: 'warning', message: '图层数量已达上限' }, 'noteBar::add'); } } }); //测面工具 $(".tools-area").unbind('click').bind('click', function () { if (modValue.mearsuringAppendToMyLayer) { require(['modDir/tools/toolMeasuringArea'], function (toolMeasuringArea) { toolMeasuringArea.init(); }); } else { var layerLength = ONEMAP.M.myLayers.checkLength(); if (layerLength < map23DConfig.layerMaxLength) { require(['modDir/tools/toolMeasuringArea'], function (toolMeasuringArea) { toolMeasuringArea.init(); }); } else { ONEMAP.C.publisher.publish({ type: 'warning', message: '图层数量已达上限' }, 'noteBar::add'); } } }); //标注工具 $(".tools-painting").unbind('click').bind('click', function () { require(['modDir/tools/toolDraw_new'], function (toolDraw) { toolDraw.init('Line'); }); }); $(".tools-marker").unbind('click').bind('click', function () { require(['modDir/tools/toolDraw_new'], function (toolDraw) { toolDraw.init('Marker'); }); }); //剖面量算 $(".tools-elevation").unbind('click').bind('click', function () { if (modValue.mearsuringAppendToMyLayer) { ONEMAP.C.publisher.publish('2D', 'layout::mapStyle'); require(['modDir/tools/toolElevation'], function (toolElevation) { toolElevation.init(); }); } else { var layerLength = ONEMAP.M.myLayers.checkLength(); if (layerLength < map23DConfig.layerMaxLength) { ONEMAP.C.publisher.publish('2D', 'layout::mapStyle'); require(['modDir/tools/toolElevation'], function (toolElevation) { toolElevation.init(); }); } else { ONEMAP.C.publisher.publish({ type: 'warning', message: '图层数量已达上限' }, 'noteBar::add'); } } }); //定位 $(".tools-toolJumpToLatlng").unbind('click').bind('click', function () { require(['modDir/tools/toolJumpToLatlng'], function (toolJumpToLatlng) { toolJumpToLatlng.init(); }); }) //截屏 $(".tools-mapshot").unbind('click').bind('click', function () { ONEMAP.C.publisher.publish('2D', 'layout::mapStyle'); // require(['modDir/tools/toolMapShot'], function(toolMapShot) { // toolMapShot.init(); // }); require(['modDir/tools/toolMapShotAndDownLoad'], function (toolMapShot) { toolMapShot.init(1); }); }); $(".tools-msAll").unbind('click').bind('click', function () { ONEMAP.C.publisher.publish('2D', 'layout::mapStyle'); // require(['modDir/tools/toolMapShot'], function(toolMapShot) { // toolMapShot.init(); // }); require(['modDir/tools/toolMapShotAndDownLoad'], function (toolMapShot) { toolMapShot.init(2); }); }); //三维高度测量 $(".tools-measuring3DE").unbind('click').bind('click', function () { // ONEMAP.C.publisher.publish('3D', 'layout::mapStyle'); require(['modDir/tools/tool3DVisualAnalysis'], function (tool3DVisualAnalysis) { tool3DVisualAnalysis.init(); }); }); //通视分析 3D $(".tools-visualAnalysis").unbind('click').bind('click', function () { //ONEMAP.C.publisher.publish('3D', 'layout::mapStyle'); require(['modDir/tools/tool3DVisualAnalysis'], function (tool3DVisualAnalysis) { tool3DVisualAnalysis.init(); }); }); //通视分析 2D $(".tools-TSFX").unbind('click').bind('click', function () { //ONEMAP.C.publisher.publish('3D', 'layout::mapStyle'); require(['modDir/tools/toolTSFX'], function (toolTSFX) { toolTSFX.init(); }); }); //环视分析 3D $(".tools-lookAroundAnalysis").unbind('click').bind('click', function () { //ONEMAP.C.publisher.publish('3D', 'layout::mapStyle'); require(['modDir/tools/tool3DLookAroundAnalysis'], function (tool3DLookAroundAnalysis) { tool3DLookAroundAnalysis.init(); }); }); //可视域分析 2D $(".tools-KSFX").unbind('click').bind('click', function () { //ONEMAP.C.publisher.publish('3D', 'layout::mapStyle'); require(['modDir/tools/toolKSFX'], function (toolKSFX) { toolKSFX.init(); }); }); //飞机模型 $(".tools-flightSimulation").unbind('click').bind('click', function () { // ONEMAP.C.publisher.publish('3D', 'layout::mapStyle'); require(['modDir/tools/tool3DFlightSimulation'], function (tool3DFlightSimulation) { tool3DFlightSimulation.init(); }); }); //雷达遮罩 $(".tools-radar").unbind('click').bind('click', function () { // ONEMAP.C.publisher.publish('3D', 'layout::mapStyle'); require(['modDir/tools/tool3DRadar'], function (tool3DRadar) { tool3DRadar.init(); }); }); //雷达遮罩 $(".tools-measuringHeight").unbind('click').bind('click', function () { // ONEMAP.C.publisher.publish('3D', 'layout::mapStyle'); require(['modDir/tools/tool3DMeasureHeight'], function (tool3DMeasureHeight) { tool3DMeasureHeight.init(); }); }); //清空地图 $(".tools-cleanMap").unbind('click').bind('click', function () { require(['modDir/tools/toolCleanMap'], function (toolCleanMap) { toolCleanMap.init(); }); }) //格网 /*$(".tools-geWang").unbind('click').bind('click',function(){ if ($(this).hasClass('cur')) { ONEMAP.C.publisher.publish('hide', 'mapHolder::STLatLngLayer'); $(this).removeClass('cur'); } else { ONEMAP.C.publisher.publish('show', 'mapHolder::STLatLngLayer'); $(this).addClass('cur'); } // require(['modDir/tools/geWang'], function(geWang) { // geWang.init(); // }); })*/ //中心点十字 $(".tools-shiZi").unbind('click').bind('click', function () { require(['modDir/tools/toolShiZi'], function (toolShiZi) { toolShiZi.init(); }); }) $("#toolsBar .tools-bar-content li").on("click", function () { if (!($(this).hasClass('tools-distance') || $(this).hasClass('tools-area'))) { $("#measuringText").text('').hide(); //测量提示 } }) //区域地形分析 $("#DXAnalysis").unbind('click').bind('click', function () { require(['modDir/tools/DXAnalysis'], function (DXAnalysis) { DXAnalysis.init(); }); }) }; function addMyMearingConrol(option) { if (!modValue.mearsuringAppendToMyLayer) { setGropOpacity({ options: { opacity: 1 } }) var options = { action: "add", DOM: { name: '量算', type: "group", guid: 'mearsuringGroup' } } modValue.mearsuringAppendToMyLayer = ONEMAP.M.myLayers.myLayerControl(options); ONEMAP.C.publisher.subscribe(controlMyLayer, modValue.mearsuringAppendToMyLayer); } } /** * 我的图层控制当值图层 */ function controlMyLayer(options) { switch (options.action) { case 'remove': removeMearsuring(); break; case 'opacity': setGropOpacity(options); break; case 'up': case 'down': setGroupZIndex(options); break; } }; function removeMearsuring() { ONEMAP.C.publisher.publish({ action: 'clear' }, 'controlMearsuring'); if (modValue.mearsuringAppendToMyLayer) { var options = { action: "remove", DOMid: modValue.mearsuringAppendToMyLayer } modValue.mearsuringAppendToMyLayer = ONEMAP.M.myLayers.myLayerControl(options); ONEMAP.C.publisher.unSubscribe(controlMyLayer, modValue.mearsuringAppendToMyLayer); modValue.mearsuringAppendToMyLayer = null; } } function setGropOpacity(options) { var options = options.options; if (options.opacity == 1) { ONEMAP.C.publisher.publish({ action: 'show' }, 'controlMearsuring'); } else if (options.opacity == 0) { ONEMAP.C.publisher.publish({ action: 'hide' }, 'controlMearsuring'); } } function fullMap(option) { if (option) { $("#toolsBar").fadeOut('slow') if ($("#toolsGrid").hasClass('cur')) { $("#toolsGrid .tools-Grid-content .tools-ul").fadeOut('slow') } } else { $("#toolsBar").fadeIn('slow') if ($("#toolsGrid").hasClass('cur')) { $("#toolsGrid .tools-Grid-content .tools-ul").fadeIn('slow') } } } function removeMyLayerControl(options) { if (options.modName == "cleanMap") { if (modValue.mearsuringAppendToMyLayer) { var options = { action: "remove", DOMid: modValue.mearsuringAppendToMyLayer } modValue.mearsuringAppendToMyLayer = ONEMAP.M.myLayers.myLayerControl(options); ONEMAP.C.publisher.unSubscribe(controlMyLayer, modValue.mearsuringAppendToMyLayer); modValue.mearsuringAppendToMyLayer = null; } } } function subscribe() { ONEMAP.C.publisher.subscribe(fullMap, 'layout::fullMap'); ONEMAP.C.publisher.subscribe(layoutResize, 'change23D'); ONEMAP.C.publisher.subscribe(addMyMearingConrol, 'mearsuring'); ONEMAP.C.publisher.subscribe(removeMyLayerControl, 'tools:active'); } function unbindEvents() { $(".tools-marker").unbind('click'); $(".tools-elevation").unbind('click'); $(".tools-painting").unbind('click'); } return ONEMAP.M.toolsBar = { init: init, bindEvents: bindEvents, unbindEvents: unbindEvents, layoutResize: layoutResize, }; })