123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452 |
- /**
- * [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,
- };
- })
|