Commit c29701fe64d3d27722db2e880cec82bb47df1002

Authored by 娄高锋
2 parents c1dc14d5 92693332

Merge branch 'pudong' of 192.168.168.201:panzhaov5/bsth_control into pudong

src/main/resources/static/real_control_v2/mapmonitor/js/spatial_data.js
1 -/** 空间数据 */  
2 -  
3 -var gb_map_spatial_data = (function () {  
4 -  
5 - var storage = window.localStorage;  
6 -  
7 - var activeLines = JSON.parse(storage.getItem('lineControlItems'));  
8 - var line_idx = (function () {  
9 - var str = '';  
10 - for (var i = 0, item; item = activeLines[i++];) {  
11 - str += (',' + item.lineCode);  
12 - }  
13 - return str.substr(1);  
14 - })();  
15 -  
16 - var cont = '#spatial-tree-content';  
17 - //线路站点路由数据  
18 - var lineStationArr;  
19 -  
20 - //停车场数据  
21 - var carparkArr;  
22 -  
23 - var init = function () {  
24 - //加载站点路由数据  
25 - gb_common.$get('/realMap/stationVersionSpatialData', {idx: line_idx}, function (rs) {  
26 - var list = rs.list;  
27 - $.each(list, function () {  
28 - this.lat = this.gLaty;  
29 - this.lon = this.gLonx;  
30 - delete this.gLaty;  
31 - delete this.gLonx;  
32 - if(this.shapesType=='d'){  
33 - var calcRs = calcPolygonArea(this.gPolygonGrid);  
34 - this._polygonArea = calcRs._polygonArea;  
35 - this._gPoints = calcRs._gPoints;  
36 - }  
37 - });  
38 - //排序  
39 - list.sort(function (a, b) {  
40 - return a.stationRouteCode - b.stationRouteCode;  
41 - });  
42 - //按线路分组  
43 - lineStationArr = gb_common.groupBy(list, 'lineCode');  
44 - //再按上下行分组  
45 - for (var lineCode in lineStationArr) {  
46 - lineStationArr[lineCode] = gb_common.groupBy(lineStationArr[lineCode], 'directions');  
47 - }  
48 -  
49 - ep.emitLater('station');  
50 - });  
51 -  
52 - //加载停车场数据  
53 - gb_common.$get('/realMap/carParkSpatialData', {}, function (rs) {  
54 - carparkArr = rs.list;  
55 - $.each(carparkArr, function () {  
56 - if(this.shapesType=='d'){  
57 - var calcRs = calcPolygonArea(this.gParkPoint);  
58 - this._polygonArea = calcRs._polygonArea;  
59 - this._gPoints = calcRs._gPoints;  
60 - }  
61 - });  
62 - ep.emitLater('carpark');  
63 - });  
64 -  
65 - var ep = EventProxy.create('station', 'carpark', function () {  
66 - $(".real_spatial_panel").resizable({  
67 - maxHeight: '100%',  
68 - minHeight: 18  
69 - });  
70 -  
71 - //绘制站点路由树  
72 - $('.station-route-tree', cont)  
73 - //state插件 状态恢复完成  
74 - .on('state_ready.jstree', function () {  
75 - //绑定checkbox状态切换事件  
76 - $(this).on('check_node.jstree uncheck_node.jstree', gb_map_overlay_mge.drawStation);  
77 - })  
78 - .on('activate_node.jstree', function (e, n) {  
79 - var node = n.node;  
80 - if(node.state.checked)  
81 - gb_map_overlay_mge._focus_station(node.data);  
82 - })  
83 - .jstree({  
84 - 'core': {  
85 - 'data': get_st_route_tree_data()  
86 - },  
87 - 'checkbox': {  
88 - 'keep_selected_style': false,  
89 - 'whole_node': false,  
90 - 'tie_selection': false  
91 - },  
92 - //local storage里的key  
93 - 'state': {  
94 - 'key': 'jstree_map_station_route'  
95 - },  
96 - 'plugins': ['checkbox', 'state']  
97 - });  
98 -  
99 -  
100 - //停车场  
101 - $('.carpark-panel', cont)  
102 - .on('state_ready.jstree', function () {  
103 - //绑定checkbox状态切换事件  
104 - $(this).on('check_node.jstree uncheck_node.jstree', gb_map_overlay_mge.drawCarpark);  
105 - })  
106 - .on('activate_node.jstree', function (e, n) {  
107 - var node = n.node;  
108 - if(node.state.checked)  
109 - gb_map_overlay_mge._focus_carpark(node.data);  
110 - })  
111 - .jstree({  
112 - 'core': {  
113 - 'data': get_st_carpark_tree_data()  
114 - },  
115 - 'checkbox': {  
116 - 'keep_selected_style': false,  
117 - 'whole_node': false,  
118 - 'tie_selection': false  
119 - },  
120 - //local storage里的key  
121 - 'state': {  
122 - 'key': 'jstree_map_carpark'  
123 - },  
124 - 'plugins': ['checkbox', 'state']  
125 - });  
126 -  
127 - refresh();  
128 - });  
129 - };  
130 -  
131 - //计算多边形面积  
132 - function calcPolygonArea(polygonStr) {  
133 - var pStr = polygonStr.substring(9, polygonStr.length - 2);  
134 - var array = pStr.split(',');  
135 - var newArr=[];  
136 -  
137 - //递归去掉闭合的尾  
138 - (function () {  
139 - var f = arguments.callee;  
140 - var end=array.length - 1;  
141 - if(array.length > 1 && array[0] == array[end]){  
142 - array = array.slice(0, end);  
143 - f();  
144 - }  
145 - })();  
146 -  
147 - //去掉连续的重复点  
148 - var last;  
149 - $.each(array, function (i, str) {  
150 - if(last){  
151 - if(last != str)  
152 - newArr.push(str);  
153 - }  
154 - else  
155 - newArr.push(str);  
156 - last = str;  
157 - });  
158 -  
159 - var gPoints=[],ts;  
160 - $.each(newArr, function (i, c) {  
161 - ts=c.split(' ');  
162 - gPoints.push({  
163 - lat: parseFloat(ts[1]),  
164 - lng: parseFloat(ts[0])  
165 - });  
166 - });  
167 -  
168 - //用百度geo工具库计算面积  
169 - var _polygonArea = BMapLib.GeoUtils.getPolygonArea(gPoints);  
170 - return {_polygonArea: _polygonArea.toFixed(2), _gPoints: gPoints};  
171 - }  
172 -  
173 - var refresh = function (type, checked) {  
174 - if (!triggerElem())  
175 - return;  
176 -  
177 - if ((type == 'carPark' && checked) || (type == 'station' && !checked)) {  
178 - //显示停车场面板  
179 - $('.car-park-item', cont).addClass('uk-active');  
180 - $('li.cp-tab-btn', '.real_spatial_panel').addClass('uk-active');  
181 - $('.carpark-panel', cont).jstree(true).check_all();  
182 -  
183 - //绘制停车场  
184 - gb_map_overlay_mge.drawCarpark();  
185 - }  
186 - else {  
187 - //显示站点路由面板  
188 - $('.station-route-item', cont).addClass('uk-active');  
189 - $('li.sr-tab-btn', '.real_spatial_panel').addClass('uk-active');  
190 -  
191 - //选中相关站点路由树  
192 - var chs = gb_map_overlay_mge.getCheckedDevice();  
193 - var idx = {};  
194 - $.each(chs, function () {  
195 - idx[this.data.lineId + '_' + this.data.upDown] = 1;  
196 - });  
197 -  
198 - var treeObj = $('.station-route-tree', cont).jstree(true);  
199 - for (var id in idx) {  
200 - treeObj.check_node(treeObj.get_node(id + '_st'));  
201 - }  
202 -  
203 - //drawStation();  
204 - gb_map_overlay_mge.drawStation();  
205 - }  
206 - }  
207 -  
208 - var triggerElem = function () {  
209 - var config = gb_map_config.getConfig().spatialData;  
210 -  
211 - if(config.station || config.carPark){  
212 - showPanel();  
213 - return true;  
214 - }  
215 - hidePanel();  
216 - //gb_map_imap.call('hideAllStationMarker');  
217 - //gb_map_imap.call('hideDrawCarpark');  
218 - return false;  
219 - }  
220 -  
221 - var animationend = 'webkitAnimationEnd animationend';  
222 - var showPanel = function () {  
223 - var elem = $('.real_spatial_panel');  
224 - var config = gb_map_config.getConfig().spatialData;  
225 -  
226 - if (config.station && config.carPark) {  
227 - anim_show($('.uk-subnav', elem), 'uk-animation-scale-up');  
228 - $('.real_spatial_body', elem).addClass('show-tab');  
229 - }  
230 - else {  
231 - $('.uk-subnav', elem).hide();  
232 - $('.real_spatial_body', elem).removeClass('show-tab');  
233 - }  
234 -  
235 - $('li.uk-active', elem).removeClass('uk-active');  
236 -  
237 - if (!elem.is(":hidden"))  
238 - return;  
239 -  
240 - anim_show(elem, 'uk-animation-slide-left');  
241 - }  
242 -  
243 - var hidePanel = function () {  
244 - var elem = $('.real_spatial_panel');  
245 - elem.hide();  
246 - }  
247 -  
248 - function anim_show(e, anim) {  
249 - e.addClass(anim).show().one(animationend, function () {  
250 - $(this).removeClass(anim);  
251 - });  
252 - }  
253 -  
254 - function getCheckedStation() {  
255 - var list = [];  
256 - var chs = $('.station-route-tree', cont).jstree(true).get_checked(true);  
257 - chs = chs.filter(function (item) {  
258 - return item.data;  
259 - });  
260 - $.each(chs, function () {  
261 - list.push(this.data);  
262 - });  
263 - return list;  
264 - }  
265 -  
266 - function gteCheckedCarpark() {  
267 - var list = [];  
268 - var chs = $('.carpark-panel', cont).jstree(true).get_checked(true);  
269 - $.each(chs, function () {  
270 - list.push(this.data);  
271 - });  
272 - return list;  
273 - }  
274 -  
275 - var get_st_route_tree_data = function () {  
276 - var treeData = [];  
277 -  
278 - for (var lineCode in lineStationArr) {  
279 - name = gb_data_basic.codeToLine[lineCode].name;  
280 - treeData.push({  
281 - 'text': name,  
282 - 'open': true,  
283 - 'children': [  
284 - {  
285 - 'text': '上行',  
286 - 'children': grabs(lineStationArr[lineCode][0]),  
287 - 'id': lineCode + '_0_st'  
288 - },  
289 - {  
290 - 'text': '下行',  
291 - 'children': grabs(lineStationArr[lineCode][1]),  
292 - 'id': lineCode + '_1_st'  
293 - }  
294 - ]  
295 - })  
296 - }  
297 - return treeData;  
298 - };  
299 - var get_st_route_tree_data_version = function () {  
300 - var treeData = [];  
301 -  
302 - for (var lineCode in lineVersionStationArr) {  
303 - name = gb_data_basic.codeToLine[lineCode].name;  
304 - treeData.push({  
305 - 'text': name,  
306 - 'open': true,  
307 - 'children': [  
308 - {  
309 - 'text': '上行',  
310 - 'children': grabs(lineVersionStationArr[lineCode][0]),  
311 - 'id': lineCode + '_0_st'  
312 - },  
313 - {  
314 - 'text': '下行',  
315 - 'children': grabs(lineVersionStationArr[lineCode][1]),  
316 - 'id': lineCode + '_1_st'  
317 - }  
318 - ]  
319 - })  
320 - }  
321 - return treeData;  
322 - };  
323 - var get_st_carpark_tree_data = function () {  
324 - var treeData = [];  
325 -  
326 - $.each(carparkArr, function () {  
327 - treeData.push({  
328 - 'text': this.parkName,  
329 - 'data': this  
330 - });  
331 - });  
332 -  
333 - return treeData;  
334 - }  
335 -  
336 - var grabs = function (array) {  
337 - if (!array)  
338 - return;  
339 - var rs = [];  
340 - $.each(array, function () {  
341 - rs.push({  
342 - 'text': this.stationName,  
343 - 'data': this,  
344 - 'icon': false  
345 - });  
346 - });  
347 - return rs;  
348 - }  
349 -  
350 - return {  
351 - refresh: refresh,  
352 - init: init,  
353 - getCheckedStation:getCheckedStation,  
354 - gteCheckedCarpark: gteCheckedCarpark,  
355 - getStationArray: function (lineCode) {  
356 - return lineStationArr[lineCode];  
357 - },  
358 - carparkArray: function () {  
359 - return carparkArr;  
360 - }  
361 - }; 1 +/** 空间数据 */
  2 +
  3 +var gb_map_spatial_data = (function () {
  4 +
  5 + var storage = window.localStorage;
  6 +
  7 + var activeLines = JSON.parse(storage.getItem('lineControlItems'));
  8 + var line_idx = (function () {
  9 + var str = '';
  10 + for (var i = 0, item; item = activeLines[i++];) {
  11 + str += (',' + item.lineCode);
  12 + }
  13 + return str.substr(1);
  14 + })();
  15 +
  16 + var cont = '#spatial-tree-content';
  17 + //线路站点路由数据
  18 + var lineStationArr, currentLineStationArr;
  19 +
  20 + //停车场数据
  21 + var carparkArr;
  22 +
  23 + var init = function () {
  24 +
  25 + //加载各线路当前版本站点路由数据
  26 + gb_common.$get('/realMap/stationSpatialData', {idx: line_idx}, function (rs) {
  27 + var list = rs.list;
  28 + $.each(list, function () {
  29 + this.lat = this.gLaty;
  30 + this.lon = this.gLonx;
  31 + delete this.gLaty;
  32 + delete this.gLonx;
  33 + if(this.shapesType=='d'){
  34 + var calcRs = calcPolygonArea(this.gPolygonGrid);
  35 + this._polygonArea = calcRs._polygonArea;
  36 + this._gPoints = calcRs._gPoints;
  37 + }
  38 + });
  39 + //排序
  40 + list.sort(function (a, b) {
  41 + return a.stationRouteCode - b.stationRouteCode;
  42 + });
  43 + //按线路分组
  44 + currentLineStationArr = gb_common.groupBy(list, 'lineCode');
  45 + //再按上下行分组
  46 + for (var lineCode in currentLineStationArr) {
  47 + currentLineStationArr[lineCode] = gb_common.groupBy(currentLineStationArr[lineCode], 'directions');
  48 + }
  49 +
  50 + ep.emitLater('currentstation');
  51 + });
  52 +
  53 + //加载各线路所有版本站点路由数据(轨迹回放时用)
  54 + gb_common.$get('/realMap/stationVersionSpatialData', {idx: line_idx}, function (rs) {
  55 + var list = rs.list;
  56 + $.each(list, function () {
  57 + this.lat = this.gLaty;
  58 + this.lon = this.gLonx;
  59 + delete this.gLaty;
  60 + delete this.gLonx;
  61 + if(this.shapesType=='d'){
  62 + var calcRs = calcPolygonArea(this.gPolygonGrid);
  63 + this._polygonArea = calcRs._polygonArea;
  64 + this._gPoints = calcRs._gPoints;
  65 + }
  66 + });
  67 + //排序
  68 + list.sort(function (a, b) {
  69 + return a.stationRouteCode - b.stationRouteCode;
  70 + });
  71 + //按线路分组
  72 + lineStationArr = gb_common.groupBy(list, 'lineCode');
  73 + //再按上下行分组
  74 + for (var lineCode in lineStationArr) {
  75 + lineStationArr[lineCode] = gb_common.groupBy(lineStationArr[lineCode], 'directions');
  76 + }
  77 +
  78 + ep.emitLater('station');
  79 + });
  80 +
  81 + //加载停车场数据
  82 + gb_common.$get('/realMap/carParkSpatialData', {}, function (rs) {
  83 + carparkArr = rs.list;
  84 + $.each(carparkArr, function () {
  85 + if(this.shapesType=='d'){
  86 + var calcRs = calcPolygonArea(this.gParkPoint);
  87 + this._polygonArea = calcRs._polygonArea;
  88 + this._gPoints = calcRs._gPoints;
  89 + }
  90 + });
  91 + ep.emitLater('carpark');
  92 + });
  93 +
  94 + var ep = EventProxy.create('currentstation', 'station', 'carpark', function () {
  95 + $(".real_spatial_panel").resizable({
  96 + maxHeight: '100%',
  97 + minHeight: 18
  98 + });
  99 +
  100 + //绘制站点路由树
  101 + $('.station-route-tree', cont)
  102 + //state插件 状态恢复完成
  103 + .on('state_ready.jstree', function () {
  104 + //绑定checkbox状态切换事件
  105 + $(this).on('check_node.jstree uncheck_node.jstree', gb_map_overlay_mge.drawStation);
  106 + })
  107 + .on('activate_node.jstree', function (e, n) {
  108 + var node = n.node;
  109 + if(node.state.checked)
  110 + gb_map_overlay_mge._focus_station(node.data);
  111 + })
  112 + .jstree({
  113 + 'core': {
  114 + 'data': get_st_route_tree_data()
  115 + },
  116 + 'checkbox': {
  117 + 'keep_selected_style': false,
  118 + 'whole_node': false,
  119 + 'tie_selection': false
  120 + },
  121 + //local storage里的key
  122 + 'state': {
  123 + 'key': 'jstree_map_station_route'
  124 + },
  125 + 'plugins': ['checkbox', 'state']
  126 + });
  127 +
  128 +
  129 + //停车场
  130 + $('.carpark-panel', cont)
  131 + .on('state_ready.jstree', function () {
  132 + //绑定checkbox状态切换事件
  133 + $(this).on('check_node.jstree uncheck_node.jstree', gb_map_overlay_mge.drawCarpark);
  134 + })
  135 + .on('activate_node.jstree', function (e, n) {
  136 + var node = n.node;
  137 + if(node.state.checked)
  138 + gb_map_overlay_mge._focus_carpark(node.data);
  139 + })
  140 + .jstree({
  141 + 'core': {
  142 + 'data': get_st_carpark_tree_data()
  143 + },
  144 + 'checkbox': {
  145 + 'keep_selected_style': false,
  146 + 'whole_node': false,
  147 + 'tie_selection': false
  148 + },
  149 + //local storage里的key
  150 + 'state': {
  151 + 'key': 'jstree_map_carpark'
  152 + },
  153 + 'plugins': ['checkbox', 'state']
  154 + });
  155 +
  156 + refresh();
  157 + });
  158 + };
  159 +
  160 + //计算多边形面积
  161 + function calcPolygonArea(polygonStr) {
  162 + var pStr = polygonStr.substring(9, polygonStr.length - 2);
  163 + var array = pStr.split(',');
  164 + var newArr=[];
  165 +
  166 + //递归去掉闭合的尾
  167 + (function () {
  168 + var f = arguments.callee;
  169 + var end=array.length - 1;
  170 + if(array.length > 1 && array[0] == array[end]){
  171 + array = array.slice(0, end);
  172 + f();
  173 + }
  174 + })();
  175 +
  176 + //去掉连续的重复点
  177 + var last;
  178 + $.each(array, function (i, str) {
  179 + if(last){
  180 + if(last != str)
  181 + newArr.push(str);
  182 + }
  183 + else
  184 + newArr.push(str);
  185 + last = str;
  186 + });
  187 +
  188 + var gPoints=[],ts;
  189 + $.each(newArr, function (i, c) {
  190 + ts=c.split(' ');
  191 + gPoints.push({
  192 + lat: parseFloat(ts[1]),
  193 + lng: parseFloat(ts[0])
  194 + });
  195 + });
  196 +
  197 + //用百度geo工具库计算面积
  198 + var _polygonArea = BMapLib.GeoUtils.getPolygonArea(gPoints);
  199 + return {_polygonArea: _polygonArea.toFixed(2), _gPoints: gPoints};
  200 + }
  201 +
  202 + var refresh = function (type, checked) {
  203 + if (!triggerElem())
  204 + return;
  205 +
  206 + if ((type == 'carPark' && checked) || (type == 'station' && !checked)) {
  207 + //显示停车场面板
  208 + $('.car-park-item', cont).addClass('uk-active');
  209 + $('li.cp-tab-btn', '.real_spatial_panel').addClass('uk-active');
  210 + $('.carpark-panel', cont).jstree(true).check_all();
  211 +
  212 + //绘制停车场
  213 + gb_map_overlay_mge.drawCarpark();
  214 + }
  215 + else {
  216 + //显示站点路由面板
  217 + $('.station-route-item', cont).addClass('uk-active');
  218 + $('li.sr-tab-btn', '.real_spatial_panel').addClass('uk-active');
  219 +
  220 + //选中相关站点路由树
  221 + var chs = gb_map_overlay_mge.getCheckedDevice();
  222 + var idx = {};
  223 + $.each(chs, function () {
  224 + idx[this.data.lineId + '_' + this.data.upDown] = 1;
  225 + });
  226 +
  227 + var treeObj = $('.station-route-tree', cont).jstree(true);
  228 + for (var id in idx) {
  229 + treeObj.check_node(treeObj.get_node(id + '_st'));
  230 + }
  231 +
  232 + //drawStation();
  233 + gb_map_overlay_mge.drawStation();
  234 + }
  235 + }
  236 +
  237 + var triggerElem = function () {
  238 + var config = gb_map_config.getConfig().spatialData;
  239 +
  240 + if(config.station || config.carPark){
  241 + showPanel();
  242 + return true;
  243 + }
  244 + hidePanel();
  245 + //gb_map_imap.call('hideAllStationMarker');
  246 + //gb_map_imap.call('hideDrawCarpark');
  247 + return false;
  248 + }
  249 +
  250 + var animationend = 'webkitAnimationEnd animationend';
  251 + var showPanel = function () {
  252 + var elem = $('.real_spatial_panel');
  253 + var config = gb_map_config.getConfig().spatialData;
  254 +
  255 + if (config.station && config.carPark) {
  256 + anim_show($('.uk-subnav', elem), 'uk-animation-scale-up');
  257 + $('.real_spatial_body', elem).addClass('show-tab');
  258 + }
  259 + else {
  260 + $('.uk-subnav', elem).hide();
  261 + $('.real_spatial_body', elem).removeClass('show-tab');
  262 + }
  263 +
  264 + $('li.uk-active', elem).removeClass('uk-active');
  265 +
  266 + if (!elem.is(":hidden"))
  267 + return;
  268 +
  269 + anim_show(elem, 'uk-animation-slide-left');
  270 + }
  271 +
  272 + var hidePanel = function () {
  273 + var elem = $('.real_spatial_panel');
  274 + elem.hide();
  275 + }
  276 +
  277 + function anim_show(e, anim) {
  278 + e.addClass(anim).show().one(animationend, function () {
  279 + $(this).removeClass(anim);
  280 + });
  281 + }
  282 +
  283 + function getCheckedStation() {
  284 + var list = [];
  285 + var chs = $('.station-route-tree', cont).jstree(true).get_checked(true);
  286 + chs = chs.filter(function (item) {
  287 + return item.data;
  288 + });
  289 + $.each(chs, function () {
  290 + list.push(this.data);
  291 + });
  292 + return list;
  293 + }
  294 +
  295 + function gteCheckedCarpark() {
  296 + var list = [];
  297 + var chs = $('.carpark-panel', cont).jstree(true).get_checked(true);
  298 + $.each(chs, function () {
  299 + list.push(this.data);
  300 + });
  301 + return list;
  302 + }
  303 +
  304 + var get_st_route_tree_data = function () {
  305 + var treeData = [];
  306 +
  307 + for (var lineCode in currentLineStationArr) {
  308 + name = gb_data_basic.codeToLine[lineCode].name;
  309 + treeData.push({
  310 + 'text': name,
  311 + 'open': true,
  312 + 'children': [
  313 + {
  314 + 'text': '上行',
  315 + 'children': grabs(currentLineStationArr[lineCode][0]),
  316 + 'id': lineCode + '_0_st'
  317 + },
  318 + {
  319 + 'text': '下行',
  320 + 'children': grabs(currentLineStationArr[lineCode][1]),
  321 + 'id': lineCode + '_1_st'
  322 + }
  323 + ]
  324 + })
  325 + }
  326 + return treeData;
  327 + };
  328 + var get_st_route_tree_data_version = function () {
  329 + var treeData = [];
  330 +
  331 + for (var lineCode in lineVersionStationArr) {
  332 + name = gb_data_basic.codeToLine[lineCode].name;
  333 + treeData.push({
  334 + 'text': name,
  335 + 'open': true,
  336 + 'children': [
  337 + {
  338 + 'text': '上行',
  339 + 'children': grabs(lineVersionStationArr[lineCode][0]),
  340 + 'id': lineCode + '_0_st'
  341 + },
  342 + {
  343 + 'text': '下行',
  344 + 'children': grabs(lineVersionStationArr[lineCode][1]),
  345 + 'id': lineCode + '_1_st'
  346 + }
  347 + ]
  348 + })
  349 + }
  350 + return treeData;
  351 + };
  352 + var get_st_carpark_tree_data = function () {
  353 + var treeData = [];
  354 +
  355 + $.each(carparkArr, function () {
  356 + treeData.push({
  357 + 'text': this.parkName,
  358 + 'data': this
  359 + });
  360 + });
  361 +
  362 + return treeData;
  363 + }
  364 +
  365 + var grabs = function (array) {
  366 + if (!array)
  367 + return;
  368 + var rs = [];
  369 + $.each(array, function () {
  370 + rs.push({
  371 + 'text': this.stationName,
  372 + 'data': this,
  373 + 'icon': false
  374 + });
  375 + });
  376 + return rs;
  377 + }
  378 +
  379 + return {
  380 + refresh: refresh,
  381 + init: init,
  382 + getCheckedStation:getCheckedStation,
  383 + gteCheckedCarpark: gteCheckedCarpark,
  384 + getStationArray: function (lineCode) {
  385 + return lineStationArr[lineCode];
  386 + },
  387 + carparkArray: function () {
  388 + return carparkArr;
  389 + }
  390 + };
362 })(); 391 })();
363 \ No newline at end of file 392 \ No newline at end of file