toolSPDraw.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. /**
  2. * [ONEMAP.M.toolSPDraw]
  3. * @return {[object]}
  4. */
  5. define(['html!templates/tools/toolSPDraw',
  6. 'css!styles/tools/toolSPDraw'
  7. ],
  8. function (tplLayout) {
  9. /**
  10. * 模块数据 用于数据存储和外部调用
  11. * @type {Object}
  12. * 数据存放
  13. */
  14. var modValue = {};
  15. /**
  16. * 模块界面样式 例如:宽,高
  17. * @type {Object}
  18. */
  19. var styles = {};
  20. /**
  21. * 模块状态,用于存储模块的状态 例如:收起,关闭
  22. * @type {Object}
  23. */
  24. var status = {};
  25. /**
  26. * 查询参数
  27. * @type {Object}
  28. */
  29. var options = {};
  30. /**
  31. * 初始化并订阅事件
  32. * @return {[type]} [description]
  33. */
  34. function init(drawId) {
  35. ONEMAP.C.publisher.publish(true, 'layout::fullMap');
  36. setTimeout(function () {
  37. var baseMapType = $('#topBar #chooseBg .map-list .active').attr('mid');
  38. if (baseMapType == 'gr') {
  39. if (!$("#mapBaseLayerControl .choosemap .name-control input").prop("checked")) {
  40. baseMapType = 'gr'
  41. }
  42. }
  43. var options = {
  44. lat: map23DData.view.center.lat,
  45. lng: map23DData.view.center.lng,
  46. zoom: map23DData.view.zoom,
  47. ticket: '',
  48. baseMap: baseMapType, //ONEMAP.M.mapHolder.modValue.mainLayers,
  49. placeName: $("#mapBaseLayerControl .choosemap .name-control input").prop("checked") ? true : false,
  50. drawId: drawId || '',
  51. spDrawServerUrl: onemapUrlConfig.spDrawServerUrl,
  52. }
  53. $('body').append(tplLayout);
  54. var SPDrawTemplate = Handlebars.compile($('#tools_SPDraw').html());
  55. $("#toolSPDraw .modal-body").append(SPDrawTemplate(options))
  56. bindEvent();
  57. }, 1000)
  58. }
  59. /**
  60. * 设置界面
  61. */
  62. function setLayout() {
  63. }
  64. /**
  65. * 界面事件绑定
  66. * @return {[type]} [description]
  67. */
  68. function bindEvent() {
  69. $('#abtnSPDrawBack').bind('click', function () {
  70. // 接受domain2返回数据
  71. window.addEventListener('message', resetMap);
  72. $('#toolSPDraw .modal-body iframe')[0].contentWindow.postMessage('', onemapUrlConfigNetwork.spDrawServerUrl);
  73. setTimeout(function () {
  74. remove();
  75. }, 1000);
  76. })
  77. }
  78. /**
  79. * 界面重置
  80. * @return {[type]} [description]
  81. */
  82. function layoutResize() {
  83. }
  84. /**
  85. * 注册订阅
  86. * @type {Function}
  87. * 推送:ONEMAP.C.publisher.publish(options,'toolSPDrawuleName::type');
  88. * 订阅:ONEMAP.C.publisher.subscribe(layoutResize,'sideBarLayoutChange');
  89. */
  90. function subscribe() {}
  91. /**
  92. * 取消订阅
  93. * @type {Function}
  94. * 取消订阅:ONEMAP.C.publisher.unSubscribe(layoutResize,'sideBarLayoutChange');
  95. */
  96. function unSubscribe() {}
  97. /**
  98. * 模块移除
  99. * @return {[type]} [description]
  100. */
  101. function remove() {
  102. ONEMAP.C.publisher.publish(false, 'layout::fullMap');
  103. $('#toolSPDraw').remove();
  104. }
  105. /**
  106. * 系统重新设置
  107. */
  108. function resetMap(e) {
  109. var data = JSON.parse(e.data)
  110. ONEMAP.M.mapHolder.resetMapCenterZoomLayer(data.center, data.zoom)
  111. ONEMAP.M.chooseBg.spDrawBackMapChange(data.layer)
  112. window.removeEventListener('message', resetMap);
  113. }
  114. return ONEMAP.M.toolSPDraw = {
  115. init: init,
  116. remove: remove
  117. }
  118. });