define([ 'html!templates/tools/toolFlyLineModal', 'css!styles/tools/toolFlyLineModal'],function(tpcLayout){ /** * 状态值 * @type {Boolean} * @default false * @private */ var status = { initialized:false,//是否初始化 veiwHeightType:null }; /** * 模块数据 用于数据存储和外部调用 * @type {Object} * 数据存放 */ var modValue = { }; /** * 飞行模拟初始化 */ function init(){ if(!status.initialized){ setLayout(); bindEvent(); subscribe(); status.initialized = true; } ONEMAP.C.publisher.publish({ modName: 'toolFlyLineModel' }, 'tools:active'); }; function setLayout(){ $('body').append(tpcLayout); //拖拽 $("#flyLineModal .popup-ct").dragmove($('#flyLineModal')); }; function subscribe(){ ONEMAP.C.publisher.subscribe(remove,'tools:active'); ONEMAP.C.publisher.subscribe(remove, 'change23D'); //ONEMAP.C.publisher.subscribe(resizeLayout,'map3DclickNew') }; function resizeLayout(){ if($("#selectFlyLine").hasClass('cur')){ $("#selectFlyLine").removeClass('cur') } } function remove(options){ if(options.modName != 'toolFlyLineModel'){ $(".tools-flyLineModal").removeClass('cur'); $('#clearFlyLine').click(); removeflyLineModal(); }else{ if($(".tools-flyLineModal").hasClass('cur')){ $(".tools-flyLineModal").removeClass('cur'); $('#clearFlyLine').click(); removeflyLineModal(); }else{ $(".tools-flyLineModal").addClass('cur'); addflyLineModal(); } } if(options == '2d'){ $('#flyLineModal').removeClass('class3d'); }else{ $('#flyLineModal').addClass('class3d'); } } /** * 加载模拟飞行 */ function addflyLineModal(){ $("#flyLineModal").show(); }; /** * 移除模拟飞行 */ function removeflyLineModal(){ $("#flyLineModal").hide(); } /** * 绑定点击事件 */ function bindEvent(){ //清除路线 $('#clearFlyLine').bind('click',function(){ locaSpaceMap.Globe.StopFly(); $("#drawFlyLine").removeClass('cur'); $("#selectFlyLine").removeClass('cur'); locaSpaceMap.Globe.Action = 0; //使鼠标动作返回普通浏览状态 locaSpaceMap.Globe.MemoryLayer.RemoveAllFeature(); //刷新显示 locaSpaceMap.Refresh(); $('#drawFlyLine, #selectFlyLine, #flyByLine').show(); $('#flyStop , #flyGo').hide(); }); //绘制路线 $("#drawFlyLine").bind('click',function(){ if($(this).hasClass('cur')){ $(this).removeClass('cur'); locaSpaceMap.Globe.Action = 0; //使鼠标动作返回普通浏览状态 locaSpaceMap.Refresh(); //刷新显示 }else { $('#toolsModal .modal-body .cur').removeClass('cur'); $(this).addClass('cur'); locaSpaceMap.Globe.Action = 10; locaSpaceMap.Refresh(); //刷新显示 } }) //选定路线 $('#selectFlyLine').bind('click',function(){ if($(this).hasClass('cur')){ $(this).removeClass('cur'); locaSpaceMap.Globe.Action = 0; //使鼠标动作返回普通浏览状态 locaSpaceMap.Refresh(); //刷新显示 }else { $('#flyLineModal .modal-body .cur').removeClass('cur'); $(this).addClass('cur'); locaSpaceMap.Globe.Action = 5; locaSpaceMap.Refresh(); //刷新显示 } }); //沿线飞行 $('#flyByLine').bind('click',function(){ var features=locaSpaceMap.Globe.DestLayerFeatureAdd.GetAllFeatures(); if(locaSpaceMap.Globe.SelectedObject){ var flyAlongLineSpeed=parseInt($('#flyOptions').find('input[name="flySpeed"]').val())?parseInt($('#flyOptions').find('input[name="flySpeed"]').val()):0; var flyAlongLineHeight=parseInt($('#flyOptions').find('input[name="flyHeight"]').val())?parseInt($('#flyOptions').find('input[name="flyHeight"]').val()):0; var flyAlongLineElev=parseInt($('#flyOptions').find('input[name="flyElevation"]').val())?parseInt($('#flyOptions').find('input[name="flyElevation"]').val()):0; //var flyAlongLineHead=parseInt($('#flyOptions').find('input[name="flyHeading"]').val())?parseInt($('#flyOptions').find('input[name="flyHeading"]').val()):0; if(flyAlongLineSpeed<100 || flyAlongLineSpeed>100000){ alert('请输入大于100小于100000的速度值'); return false; } if(flyAlongLineHeight<300 || flyAlongLineHeight>100000){ alert('请输入大于300小于100000的高度值'); return false; } if(flyAlongLineElev<1 || flyAlongLineElev>90){ alert('请输入大于1小于90的仰角值'); return false; } //if(flyAlongLineHead<1 || flyAlongLineHead>360){ // alert('请输入大于1小于360的仰角值'); // return false; //} //禁止倾斜 locaSpaceMap.Globe.FlyAlongLineSpeed=flyAlongLineSpeed; locaSpaceMap.Globe.FlyEyeAlongWithLine1(locaSpaceMap.Globe.SelectedObject.Geometry, flyAlongLineHeight, flyAlongLineElev, true, 0 , false); locaSpaceMap.Globe.Action = 0; $('#drawFlyLine, #selectFlyLine, #flyByLine').hide(); $('#flyStop , #flyGo').show(); }else { alert('请绘制或选择路线!'); } }); $('#flyGo').bind('click',function(){ locaSpaceMap.Globe.ContinueFly(); }); $('#flyStop').bind('click',function(){ $('#drawFlyLine, #selectFlyLine, #flyByLine').show(); $('#flyStop , #flyGo').hide(); locaSpaceMap.Globe.StopFly(); }); } return ONEMAP.M.toolFlyLineModel = { init:init } })