modelFly.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. /**
  2. * [ONEMAP.M.projectController]
  3. * @return {[object]}
  4. */
  5. define(function(tplLayout) {
  6. /**
  7. * 初始化并订阅事件
  8. * @return {[type]} [description]
  9. */
  10. /**
  11. * 模块数据 用于数据存储和外部调用
  12. * @type {Object}
  13. * 数据存放
  14. */
  15. var modValue = {
  16. }
  17. /**
  18. * 状态值
  19. * @type {Boolean}
  20. * @default false
  21. * @private
  22. */
  23. var status = {
  24. initialized: false,
  25. isShowChild: false,
  26. connect: false,
  27. webSocketState: false
  28. };
  29. var opData = {
  30. lng: "",
  31. lat: "",
  32. zoom: ""
  33. };
  34. function init() {
  35. if (!status.initialized) {
  36. subscribe();
  37. bindEvent();
  38. status.initialized = true;
  39. }
  40. }
  41. function bindEvent(){
  42. }
  43. /**
  44. * 设置界面
  45. */
  46. function setLayout() {
  47. }
  48. /**
  49. * 界面重置
  50. * @return {[type]} [description]
  51. */
  52. function layoutResize(options) {
  53. }
  54. function add3DModelNoFly(options){
  55. if(options.name){
  56. modValue['model'+options.indexNum] = locaSpaceMap.Globe.Layers.Add1(options.url);
  57. if(opData.lng != ""){
  58. locaSpace.FlyToPlace(opData.lng,opData.lat,opData.zoom,0,45);
  59. }
  60. }else {
  61. locaSpaceMap.Globe.Layers.RemoveLayerByID(modValue['model'+options.indexNum]['ID']);
  62. }
  63. locaSpaceMap.Refresh();
  64. };
  65. function add3DModel(options){
  66. if(options.name){
  67. modValue['model'+options.indexNum] = locaSpaceMap.Globe.Layers.Add1(options.url);
  68. locaSpace.FlyToPlace(opData.lng,opData.lat,opData.zoom,0,45);
  69. }else {
  70. locaSpaceMap.Globe.Layers.RemoveLayerByID(modValue['model'+options.indexNum]['ID']);
  71. }
  72. locaSpaceMap.Refresh();
  73. };
  74. function qxAction(options){
  75. setTimeout(function(){
  76. var thrData = ONEMAP.D.globalSettingData.map3DModelSetting;
  77. for(var i=0;i<thrData.length;i++){
  78. var threeDlist = thrData[i].type;
  79. if(threeDlist == "qxData"){
  80. if(options == "add"){
  81. thrData[i].indexNum = i;
  82. if(opData.lng == ""){
  83. opData.lng = thrData[i].center.lng;
  84. opData.lat = thrData[i].center.lat;
  85. opData.zoom = thrData[i].zoom;
  86. }
  87. add3DModelNoFly(thrData[i]);
  88. }
  89. else if(options == "remove"){
  90. var modelData = {
  91. indexNum: i
  92. }
  93. add3DModelNoFly(modelData);
  94. }
  95. }
  96. }
  97. },1000);
  98. }
  99. /**
  100. * 注册订阅
  101. * @type {Function}
  102. * 推送:ONEMAP.C.publisher.publish(options,'moduleName::type');
  103. * 订阅:ONEMAP.C.publisher.subscribe(layoutResize,'sideBarLayoutChange');
  104. */
  105. function subscribe() {
  106. ONEMAP.C.publisher.subscribe(qxAction, '3DModelControl');
  107. }
  108. /**
  109. * 取消订阅
  110. * @type {Function}
  111. * 取消订阅:ONEMAP.C.publisher.unSubscribe(layoutResize,'sideBarLayoutChange');
  112. */
  113. function unSubscribe() {
  114. }
  115. return ONEMAP.M.modelFly = {
  116. init: init
  117. }
  118. });