123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- 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
- }
- })
|