atlasBook.js 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562
  1. /**
  2. * [ATLAS.M.atlasView]
  3. * @return {[object]}
  4. */
  5. define(function(tplLayout){
  6. /**
  7. * 模块数据 用于数据存储和外部调用
  8. * @type {Object}
  9. */
  10. var modValue = {
  11. options:{}
  12. }
  13. var map,
  14. thematicFeatureGroup;
  15. var mouseInMap = false;
  16. //图集里翻页
  17. var tempCurNum = null;
  18. var clickTimeOut = null;
  19. /**
  20. * 模块界面样式 例如:宽,高
  21. * @type {Object}
  22. */
  23. var styles = {}
  24. /**
  25. * 模块状态,用于存储模块的状态 例如:收起,关闭
  26. * @type {Object}
  27. */
  28. var status = {}
  29. /**
  30. * 初始化并订阅事件
  31. * @return {[type]} [description]
  32. */
  33. function init(data){
  34. //获取参数
  35. modValue.options = data;
  36. mapInit();
  37. getAtlasCatalogData(modValue.options.productionId);
  38. setLayout();
  39. bindEvent();
  40. subscribe();
  41. }
  42. /**
  43. * 设置界面
  44. */
  45. function setLayout(){
  46. layoutResize();
  47. $(window).resize(function() {
  48. layoutResize();
  49. });
  50. }
  51. /**
  52. * 界面事件绑定
  53. * @return {[type]} [description]
  54. */
  55. function bindEvent(){
  56. $('#mapHolder').bind('mouseenter',function(){
  57. mouseInMap = true;
  58. }).bind('mouseleave',function(){
  59. mouseInMap = false;
  60. })
  61. //搜索 回车执行 (图集列表专有)
  62. $('#searchBar .input').bind('keydown', function (e) {
  63. if (e.keyCode === 13) {
  64. searchAction();
  65. }
  66. });
  67. //搜索 按钮 (图集列表专有)
  68. $('#searchBar .button').bind('click',function(e){
  69. searchAction();
  70. });
  71. $('#searchBar .input').bind('focus',function(){
  72. if($(this).val() == '请输入关键字'){
  73. $(this).val('');
  74. }
  75. });
  76. $('#searchBar .input').bind('focusout',function(){
  77. if($(this).val() == ''){
  78. $(this).val('请输入关键字');
  79. }
  80. });
  81. //清除搜索结果 (图集列表专有)
  82. $('#cleanSearch').bind('click',function(){
  83. $('#atlasCategoryList li').css({display:'block'});
  84. $('#cleanSearch').hide();
  85. modValue.options.searchKey = null;
  86. $('#searchInput').val('请输入关键字');
  87. });
  88. $(document).bind('keydown.up', function(){
  89. if(!mouseInMap){
  90. clearTimeout(clickTimeOut);
  91. clickTimeOut = setTimeout(function(){
  92. if(tempCurNum !== null){
  93. var curNum = tempCurNum;
  94. }else {
  95. var curNum = $('#atlasCategoryList dd ul li a').index($('#atlasCategoryList dd ul li .selected'));
  96. }
  97. if($('#atlasCategoryList dd ul li:eq('+((curNum-1)>=0?(curNum-1):0)+')').css('display') === 'block'){
  98. $('#atlasCategoryList dd ul li .selected').removeClass('selected');
  99. $('#atlasCategoryList dd ul li a:eq('+((curNum-1)>=0?(curNum-1):0)+')').addClass('selected');
  100. tempCurNum = null;
  101. }else {
  102. curNum--;
  103. if(curNum < 0 ){
  104. tempCurNum = null;
  105. return false;
  106. }
  107. tempCurNum = curNum;
  108. //$(_self).trigger('click');
  109. return false;
  110. }
  111. //AJAX获取专题图数据,添加专题图到地图容器
  112. getThematicData($('#atlasCategoryList dd ul li a:eq('+((curNum-1)>=0?(curNum-1):0)+')').attr('tid'));
  113. var parentDt = $('#atlasCategoryList dd ul li .selected').parent().parent().parent().prev();
  114. if(parentDt.hasClass('selected')){
  115. return false;
  116. }else {
  117. parentDt.addClass('selected');
  118. parentDt.next().css({display:"block",height:'auto'}).addClass('open');
  119. };
  120. },0);
  121. }
  122. });
  123. $(document).bind('keydown.down', function(){
  124. if(!mouseInMap){
  125. clearTimeout(clickTimeOut);
  126. clickTimeOut = setTimeout(function(){
  127. var count = $('#atlasCategoryList dd ul li').length;
  128. if(tempCurNum !== null){
  129. var curNum = tempCurNum;
  130. }else {
  131. var curNum = $('#atlasCategoryList dd ul li a').index($('#atlasCategoryList dd ul li .selected'));
  132. }
  133. if($('#atlasCategoryList dd ul li:eq('+((curNum+1)>=0?(curNum+1):0)+')').css('display') === 'block'){
  134. $('#atlasCategoryList dd ul li .selected').removeClass('selected');
  135. $('#atlasCategoryList dd ul li a:eq('+((curNum+1)>=0?(curNum+1):0)+')').addClass('selected');
  136. tempCurNum = null;
  137. }else {
  138. curNum++;
  139. if(curNum > count ){
  140. tempCurNum = null;
  141. return false;
  142. }
  143. tempCurNum = curNum;
  144. //$(_self).trigger('click');
  145. return false;
  146. }
  147. //AJAX获取专题图数据,添加专题图到地图容器
  148. getThematicData($('#atlasCategoryList dd ul li a:eq('+((curNum+1)<=count?(curNum+1):count)+')').attr('tid'));
  149. var parentDt = $('#atlasCategoryList dd ul li .selected').parent().parent().parent().prev();
  150. if(parentDt.hasClass('selected')){
  151. return false;
  152. }else {
  153. parentDt.addClass('selected');
  154. parentDt.next().css({display:"block",height:'auto'}).addClass('open');
  155. };
  156. },0);
  157. }
  158. });
  159. }
  160. /**
  161. * 界面重置
  162. * @return {[type]} [description]
  163. */
  164. function layoutResize(){
  165. }
  166. /**
  167. * 获取地图集目录数据
  168. * @type {Function}
  169. * @private
  170. */
  171. function getAtlasCatalogData(aid){
  172. ATLAS.V.loading.load();
  173. var ajaxUrl = onemapUrlConfig.thematicDataUrl+'/production/product_category?production_id='+aid;
  174. $.ajax({
  175. type:"get",
  176. dataType:'jsonp',
  177. url:ajaxUrl,
  178. success:function(data){
  179. ATLAS.V.loading.loaded();
  180. modValue.atlasCatalogData = data;
  181. setSideBarCatalog();
  182. },
  183. error:function(data){
  184. ATLAS.V.loading.loaded();
  185. ATLAS.C.publisher.publish({type:'error',message:'获取地图集目录数据失败!'},'noteBar::add');
  186. }
  187. });
  188. }
  189. /**
  190. * 设置图集目录
  191. */
  192. function setSideBarCatalog(){
  193. //$('#atlasCategoryList dl').empty();
  194. var dtCount = 1;
  195. var liCount = 1;
  196. var first = true;
  197. for(var item in modValue.atlasCatalogData.category){
  198. var cItem =modValue.atlasCatalogData.category[item];
  199. var itemDt = $('<dt>'+dtCount+'.'+cItem.name+'<i></i></dt>');
  200. $('#atlasCategoryList dl').append(itemDt);
  201. var itemDd = $('<dd></dd>');
  202. $('#atlasCategoryList dl').append(itemDd);
  203. var itemDdUl = $('<ul></ul>');
  204. itemDd.append(itemDdUl);
  205. for(var i= 0,l=cItem.list.length; i<l; i++){
  206. var mItem = cItem.list[i];
  207. //默认显示第一幅图
  208. if(first === true){
  209. var mItemLi = $('<li style="display:block;">'+
  210. '<a class="selected" tid="'+mItem.guid+'" href="javascript:void(0)">'+
  211. dtCount+'.'+liCount+'-'+mItem.name+'<i></i></a></li>');
  212. //AJAX获取专题图数据,添加专题图到地图容器
  213. getThematicData(mItem.guid);
  214. first = false;
  215. }else {
  216. var mItemLi = $('<li style="display:block;">'+
  217. '<a tid="'+mItem.guid+'" href="javascript:void(0)">'+
  218. dtCount+'.'+liCount+'-'+mItem.name+'</a></li>');
  219. }
  220. mItemLi.find('a').bind('click',{da:mItem},function(e){
  221. $('#atlasCategoryList dd ul li .selected').removeClass('selected');
  222. $(this).addClass('selected');
  223. //ie6 hack
  224. e.preventDefault();
  225. //AJAX获取专题图数据,添加专题图到地图容器
  226. getThematicData(e.data.da.guid);
  227. });
  228. mItemLi.appendTo(itemDdUl);
  229. liCount++;
  230. }
  231. dtCount++;
  232. liCount = 1;
  233. }
  234. $('#atlasCategoryList dt:first').addClass('selected');
  235. $('#atlasCategoryList dd:first').css({display:"block"}).addClass('open');
  236. $('#atlasCategoryList dt').bind('click',function(){
  237. if($(this).hasClass('selected')){
  238. $(this).removeClass('selected');
  239. $(this).next().removeClass('open').css({display:"none"});
  240. }else {
  241. $(this).addClass('selected');
  242. $(this).next().css({display:"block"}).addClass('open').css({height:'auto'});
  243. }
  244. $(".category-list").mCustomScrollbar('update');
  245. })
  246. $(".category-list").mCustomScrollbar('update');
  247. }
  248. /**
  249. * 目录内搜索
  250. * @type {Function}
  251. * @returns {boolean}
  252. * @private
  253. */
  254. function searchAction(){
  255. modValue.options.searchKey = $('#searchInput').val();
  256. if(modValue.options.searchKey == '' || modValue.options.searchKey == '请输入关键字'){
  257. $('#atlasCategoryList li').css({display:'block'});
  258. $('#cleanSearch').hide();
  259. return false;
  260. };
  261. if((/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\s]/g).test(modValue.options.searchKey)){
  262. alert('名称只能包含英文、数字、中文');
  263. $('#searchInput').focus();
  264. return false;
  265. }
  266. $('#cleanSearch').show();
  267. var first = true;
  268. $('#atlasCategoryList li').each(function(){
  269. if($(this).find('a').text().indexOf(modValue.options.searchKey) === -1){
  270. $(this).css({display:'none'});
  271. }else {
  272. $(this).css({display:'block'});
  273. if(first){
  274. $('#atlasCategoryList dd ul li .selected').removeClass('selected');
  275. $(this).find('a').addClass('selected');
  276. getThematicData($(this).find('a').attr('tid'));
  277. first = false;
  278. var parentDt = $('#atlasCategoryList dd ul li .selected').parent().parent().parent().prev();
  279. if(!parentDt.hasClass('selected')){
  280. $('#atlasCategoryList dt.selected').removeClass('selected');
  281. var ddHeight = $('#atlasCategoryList .open').height();
  282. parentDt.addClass('selected');
  283. parentDt.next().css({display:"block"}).addClass('open').animate({height:ddHeight},200);
  284. };
  285. }
  286. }
  287. })
  288. $(".category-list").mCustomScrollbar('update');
  289. }
  290. /**
  291. * AJAX获取相应GUID的专题图数据
  292. * @type {Function}
  293. * @param guid {Number} guid
  294. * @private
  295. */
  296. function getThematicData(guid){
  297. ATLAS.V.loading.load();
  298. var ajaxUrl = onemapUrlConfig.thematicDataServerUrl+'/production/metadata?production_id='+guid
  299. $.ajax({
  300. type:"get",
  301. dataType:'jsonp',
  302. url:ajaxUrl,
  303. success:function(data){
  304. ATLAS.V.loading.loaded();
  305. modValue.currentThematicData = data.metadata;
  306. //添加专题图到地图容器中
  307. addThematicToMap();
  308. },
  309. error:function(data){
  310. ATLAS.V.loading.loaded();
  311. ATLAS.C.publisher.publish({type:'error',message:'获取地图数据失败!'},'noteBar::add');
  312. }
  313. });
  314. }
  315. /**
  316. * 地图初始化
  317. * @type {Function}
  318. * @private
  319. */
  320. function mapInit(){
  321. var mapOptions = {
  322. center: [0, 0],
  323. zoom: 5,
  324. zoomControl: false,
  325. worldCopyJump: false
  326. };
  327. map = new L.Map(
  328. 'mapHolder',
  329. mapOptions
  330. );
  331. //添加专题图容器
  332. thematicFeatureGroup = L.featureGroup();
  333. thematicFeatureGroup.addTo(map);
  334. }
  335. /**
  336. * 添加专题图到地图容器中
  337. * @type {Function}
  338. * @private
  339. */
  340. function addThematicToMap(){
  341. var obj = modValue.currentThematicData;
  342. thematicFeatureGroup.clearLayers();
  343. var _boundsLatlng = JSON.parse(obj.bounds);
  344. var _bounds = new L.LatLngBounds(new L.LatLng(_boundsLatlng[1],_boundsLatlng[0]),new L.LatLng(_boundsLatlng[3],_boundsLatlng[2]));
  345. obj.titleLayer = L.tileLayer(onemapUrlConfig.thematicTileUrl+'/'+obj.production_id+'?l={z}&x={x}&y={y}',{
  346. minZoom:obj['min_zoom_level'],
  347. maxZoom:obj['max_zoom_level'],
  348. subdomains: map23DConfig.tileSubdomains||'',
  349. noWrap:true,
  350. errorTileUrl:''
  351. });
  352. obj.titleLayer.addTo(thematicFeatureGroup);
  353. map.invalidateSize();
  354. map.setView(_bounds.getCenter(),parseInt(obj['min_zoom_level']));
  355. $('#atlasInfoDetail .content').empty();
  356. $('<h3>'+obj.map_name+'</h3>').appendTo($('#atlasInfoDetail .content'));
  357. $('<p>作者: '+obj.author+'</p>').appendTo($('#atlasInfoDetail .content'));
  358. $('<p>出版社: '+obj.publisher+'</p>').appendTo($('#atlasInfoDetail .content'));
  359. $('<p>出版时间: '+obj.publication_date+'</p>').appendTo($('#atlasInfoDetail .content'));
  360. $('<p>所属图集: '+obj.original_atlas+'</p>').appendTo($('#atlasInfoDetail .content'));
  361. $('<p>地图页码: '+obj.original_page+'</p>').appendTo($('#atlasInfoDetail .content'));
  362. $('<p>扫描分辨率: '+obj.scan_dpi+' DPI</p>').appendTo($('#atlasInfoDetail .content'));
  363. $('<p>比例尺分母: '+obj.scale_denominator+'</p>').appendTo($('#atlasInfoDetail .content'));
  364. if(obj.map_theme_id != 100){
  365. $('<p>主题分类: '+['','自然','政区','交通','旅游','基础设施','人口经济','社会生活','生态环境','其他','新闻'][obj.map_theme_id]+'</p>').appendTo($('#atlasInfoDetail .content'));
  366. }else {
  367. $('<p>主题分类: 其他</p>').appendTo($('#atlasInfoDetail .content'));
  368. }
  369. if($('#atlasInfoDetail .content').children().length === 0){
  370. $('#atlasInfoDetail').hide();
  371. }else {
  372. $('#atlasInfoDetail').show();
  373. }
  374. //添加到全部详情
  375. $('#atlasInfoDetailAll .content').empty();
  376. $('<p>作者: '+obj.author+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  377. $('<p>出版社: '+obj.publisher+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  378. $('<p>出版时间: '+obj.publication_date+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  379. $('<p>所属图集: '+obj.original_atlas+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  380. $('<p>地图名称: '+obj.map_name+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  381. $('<p>地图页码: '+obj.original_page+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  382. $('<p>扫描分辨率: '+obj.scan_dpi+' DPI</p>').appendTo($('#atlasInfoDetailAll .content'));
  383. $('<p>查看权限: '+['','公开','内部','秘密','机密','绝密'][obj.read_level]+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  384. if(obj.map_theme_id != 100){
  385. $('<p>主题分类: '+['','自然','政区','交通','旅游','基础设施','人口经济','社会生活','生态环境','其他','新闻'][obj.map_theme_id]+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  386. }else {
  387. $('<p>主题分类: 其他</p>').appendTo($('#atlasInfoDetailAll .content'));
  388. }
  389. $('<p>查看次数: '+obj.view_total+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  390. $('<p>比例尺分母: '+obj.scale_denominator+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  391. $('<p>地图图片的高度: '+obj.map_image_height+' 像数</p>').appendTo($('#atlasInfoDetailAll .content'));
  392. $('<p>地图图片的宽度: '+obj.map_image_width+' 像数</p>').appendTo($('#atlasInfoDetailAll .content'));
  393. $('<p>最大显示级别: '+obj.max_zoom_level+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  394. $('<p>最小显示级别: '+obj.min_zoom_level+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  395. $('<p>产品状态: '+['初始状态','正在上传/处理文件','正常','禁用','','待删','发布'][obj.production_state]+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  396. $('<p>产品类型: '+['单幅专题图','单幅无坐标图片','基础地图','图对','系列图','图集'][obj.production_type]+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  397. $('<p>推荐度: '+obj.recommended+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  398. $('<p>是否允许删除: '+(obj.allow_del?'是':'否')+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  399. $('<p>图像存储的格式: '+obj.image_format+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  400. $('<p>生产时输入图像存储的品质: '+obj.image_quality+'%</p>').appendTo($('#atlasInfoDetailAll .content'));
  401. $('<p>区域名称编码: '+obj.region_name_id+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  402. $('<p>区域尺度: '+['其它','世界','大洲大洋','国家','省','市','县','城市'][obj.region_scale_id]+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  403. $('<p>资料年代: '+obj.data_date+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  404. $('<p>印刷时间: '+obj.printing_date+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  405. $('<p>印刷长度: '+obj.printing_length+' 厘米</p>').appendTo($('#atlasInfoDetailAll .content'));
  406. $('<p>印刷宽度: '+obj.printing_width+' 厘米</p>').appendTo($('#atlasInfoDetailAll .content'));
  407. $('<p>坐标系: '+obj.coordinate_system+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  408. $('<p style="word-wrap:break-word ;">投影参数:<br/>'+obj.projcs+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  409. //$('<p>投影信息是否准确: '+(obj.coordinate_system_accurately?'是':'否')+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  410. //$('<p>比例尺是否准确: '+(obj.scale_accurately?'是':'否')+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  411. $('<p>是否透明层(覆盖层): '+(obj.is_overlay?'是':'否')+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  412. $('<p>地图数据类型: '+['','栅格','矢量','DEM'][obj.data_type]+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  413. $('<p>数据版本: '+obj.data_version+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  414. $('<p>设备显示DPI: '+obj.device_dpi+' DPI</p>').appendTo($('#atlasInfoDetailAll .content'));
  415. $('<p>设备ID: '+obj.device_id+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  416. $('<p>设备名称: '+obj.device_name+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  417. $('<p>设备显示分辨率(高度): '+obj.device_resolution_height+' 像数</p>').appendTo($('#atlasInfoDetailAll .content'));
  418. $('<p>设备显示分辨率(宽度): '+obj.device_resolution_width+' 像数</p>').appendTo($('#atlasInfoDetailAll .content'));
  419. $('<p>设备显示屏尺寸: '+obj.device_screen_size+' 英寸</p>').appendTo($('#atlasInfoDetailAll .content')); //$('<p>数据id: '+obj.data_id+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  420. $('<p>唯一标识码: '+obj.production_id+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  421. $('<p>文件分包: '+obj.base_list+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  422. $('<p>存储地址: '+obj.storage_path+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  423. $('<p>存储类型: '+obj.storage_type+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  424. $('<p>瓦片经纬度范围: '+obj.bounds+'</p>').appendTo($('#atlasInfoDetailAll .content'));
  425. //添加说明
  426. obj.desc_id_list = JSON.parse(obj.desc_id_list);
  427. $('#atlasInfoIntro .content').empty();
  428. if(obj.desc_id_list.length > 0){
  429. for(var i =0 , l = obj.desc_id_list.length; i<l; i++){
  430. var img = $('<img src="'+onemapUrlConfig.libServerUrl+'/production/thumb?production_id='+obj.production_id+'&thumb_id='+obj.desc_id_list[i]+'"/>');
  431. img.appendTo($('#atlasInfoIntro .content'));
  432. }
  433. $('#atlasInfoIntro').show();
  434. }else {
  435. $('#atlasInfoIntro').hide();
  436. }
  437. //添加图例
  438. obj.legend_id_list = JSON.parse(obj.legend_id_list);
  439. $('#atlasInfoLegend .content').empty();
  440. if(obj.legend_id_list.length > 0){
  441. for(var i =0 , l = obj.legend_id_list.length; i<l; i++){
  442. var img = $('<img src="'+onemapUrlConfig.libServerUrl+'/production/thumb?production_id='+obj.production_id+'&thumb_id='+obj.legend_id_list[i]+'"/>');
  443. img.appendTo($('#atlasInfoLegend .content'));
  444. }
  445. $('#atlasInfoLegend').show();
  446. }else {
  447. $('#atlasInfoLegend').hide();
  448. }
  449. $(".info-list").mCustomScrollbar('update');
  450. }
  451. /**
  452. * 注册订阅
  453. * @type {Function}
  454. * 推送:ATLAS.C.publisher.publish(options,'atlasView::type');
  455. * 订阅:ATLAS.C.publisher.subscribe(layoutResize,'sideBarLayoutChange');
  456. */
  457. function subscribe(){
  458. ATLAS.C.publisher.subscribe(function(){
  459. map.invalidateSize();
  460. },'atlasView::layoutResize');
  461. }
  462. /**
  463. * 取消订阅
  464. * @type {Function}
  465. * 取消订阅:ATLAS.C.publisher.unSubscribe(layoutResize,'sideBarLayoutChange');
  466. */
  467. function unSubscribe(){}
  468. /**
  469. * 模块移除
  470. * @return {[type]} [description]
  471. */
  472. function remove(){
  473. //取消订阅
  474. //unSubscribe();
  475. }
  476. return ATLAS.M.atlasView = {
  477. init:init,
  478. layoutResize:layoutResize
  479. }
  480. });