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