Commit ae931eb86c2f61e08796661c82ad1abcb243a5e0

Authored by 潘钊
1 parent 685898b6

车辆分站内站外显示

src/main/resources/static/real_control_v2/js/utils/svg_chart.js
... ... @@ -19,6 +19,12 @@ var gb_svg_chart = (function () {
19 19 'svg-wrap': 'line'
20 20 }
21 21  
  22 + //站点间隔 线路编码 -> space
  23 + var circle_spaces={};
  24 + //var circle_space;
  25 + //是否启用动画
  26 + var animation = true;
  27 +
22 28 var calc_text_y = function (t) {
23 29 return (chart_height - (chart_height / t_max_size * t.length)) / 2 + 5;
24 30 },
... ... @@ -43,7 +49,8 @@ var gb_svg_chart = (function () {
43 49 * @param enableAttr 是否启用配置
44 50 */
45 51 var draw_line = function (lineCode, wrap, enableAttr) {
46   - wraps[lineCode+'_'+suffixs[wrap.attr('class')]]=wrap;
  52 + var wrapId = lineCode+'_'+suffixs[wrap.attr('class')];
  53 + wraps[wrapId]=wrap;
47 54 //环线
48 55 var loopLine = gb_data_basic.isLoopLine(lineCode);
49 56  
... ... @@ -84,6 +91,7 @@ var gb_svg_chart = (function () {
84 91 return cx(d, i) - 8;
85 92 };
86 93  
  94 + circle_spaces[wrapId] = (w - (x_padd * 2)) / len;
87 95 //add svg dom
88 96 var svg = d3.select(wrap[0]).append('svg')
89 97 .classed({
... ... @@ -189,11 +197,17 @@ var gb_svg_chart = (function () {
189 197 }
190 198 return circle;
191 199 },
192   - gx = function (gps, svg) {
  200 + gx = function (gps, svg, wrapId) {
193 201 var circle = get_circle(gps.stopNo + '_' + gps.upDown, svg);
194 202 if (!circle) return -100;
195 203  
196   - return circle.attr('cx') - 16.5;
  204 + var x = circle.attr('cx') - 16.5,
  205 + s = circle_spaces[wrapId] / 2;
  206 + // console.log('ss', gps.lineId + '=' + s);
  207 + //s = 5;
  208 + if(gps['instation']==0)
  209 + x = (gps['upDown']==0?x+s:x-s);
  210 + return x;
197 211 },
198 212 gy = function (gps, svg) {
199 213 var circle = get_circle(gps.stopNo + '_' + gps.upDown, svg);
... ... @@ -233,10 +247,13 @@ var gb_svg_chart = (function () {
233 247 gps_key = function (d) {
234 248 return d.deviceId;
235 249 },
236   - gps_update_point = function (e, svg) {
237   - var x;
238   - e.transition().attr('x', function (d) {
239   - x = gx(d, svg);
  250 + gps_update_point = function (e, svg, wrapId) {
  251 + var x,e1;
  252 + e1 = e;
  253 + if(animation)
  254 + e1 = e.transition();
  255 + e1.attr('x', function (d) {
  256 + x = gx(d, svg, wrapId);
240 257 if(x == -100)
241 258 $(this).css('transition-duration', 0).hide();
242 259 else
... ... @@ -319,12 +336,15 @@ var gb_svg_chart = (function () {
319 336 //rect
320 337 var rects = gps_cont.selectAll('rect').data(data, gps_key);
321 338 rects.enter().append('rect').attr('_id', rct_id);
322   - gps_update_point(rects, svg);
  339 +
  340 + //lineCode+'_'+suffixs[wrap.attr('class')]
  341 + var wrapId = $(svg).data('code') + '_' + suffixs[$(svg).parent().attr('class')];
  342 + gps_update_point(rects, svg, wrapId);
323 343 //text
324 344 var ts = gps_cont.selectAll('text').data(data, gps_key);
325 345 ts.enter().append('text').attr('_id', tx_id);
326 346 ts.text(g_text)
327   - gps_update_point(ts, svg);
  347 + gps_update_point(ts, svg, wrapId);
328 348 };
329 349  
330 350 var marker_clusterer = function (svg, lineCode) {
... ... @@ -405,6 +425,12 @@ var gb_svg_chart = (function () {
405 425 draw_line: draw_line,
406 426 setGps: setGps,
407 427 deviceOffline: deviceOffline,
408   - refreshByVisible: refreshByVisible
  428 + refreshByVisible: refreshByVisible,
  429 + disabledAnimation: function () {
  430 + animation = false;
  431 + },
  432 + enabledAnimation: function () {
  433 + animation = true;
  434 + }
409 435 };
410 436 })();
... ...