2014-11-12 1 views
1

Я пытаюсь показать линию, но когда я начинаю ломаные как этого ничего показывает:Ломаные не показывает, это показывает, когда нарезанное в небольших линиях

var geopositions = []; 

for (var i = 0; i < c.geo.length; i++) { 
    var g = c.geo[i]; 
    geopositions.push(parseFloat(g.lon)); 
    geopositions.push(parseFloat(g.lat)); 
} 

var line = { 
    positions: Cesium.Cartesian3.fromDegreesArray(geopositions), 
    width: 1, 
    id: "C" + c.id, 
    material: Cesium.Material.fromType('Color', { 
     color: Cesium.Color.fromBytes(255, 0, 0, 255) 
    }), 
    show: true 
} 
var coll = new Cesium.PolylineCollection(); 
coll.add(line); 
primitives.add(coll); 

Так я думал, что я пытаюсь сделать линии между всеми точками линии (точки в c.geo) как так:

var collection = new Cesium.PolylineCollection(); 
var prev = null; 
for (var j = 0; j < c.geo.length; j++) { 
    var geo = c.geo[j]; 
    if (prev) { 
     collection.add(
      { 
       positions: Cesium.Cartesian3.fromDegreesArray([ 
        parseFloat(prev.lon), parseFloat(prev.lat), 
        parseFloat(geo.lon), parseFloat(geo.lat)]), 
       width: 2, 
       material: Cesium.Material.fromType('Color', { 
        color: Cesium.Color.fromBytes(0, 180, 0, 255) 
       }) 
      } 
     ); 
    } 
    prev = geo; 
} 
primitives.add(collection); 

по какой-то причине это показывает линию. Я не могу найти причину, по которой это было бы так, и не понимаю, почему показывает список строк, и стандартная полилиния не отображается. Кто-нибудь знает, как показать линию без измельчения линии в небольших полилиниях?

ответ

0

У меня проблема.

Очевидно, что цезий. Полилин не оценивает две последовательные координаты (как лат, так и lon), которые являются точно такими же. Проблема, похоже, решена путем удаления дополнительных координат.

1

Цезий должен обрабатывать описанный вами случай. Скорее всего, вы работаете в какой-то форме this bug; который был исправлен с this pull request.

+0

На самом деле ничего не будет отображаться для всей полилинии. Но я уже исправил проблему. – Manuel

+0

«Хотя любой сегмент линии длиной менее миллиметра не сможет рисовать». может показаться, что только сегмент должен потерпеть неудачу, но, по моему опыту, вся полилиния терпит неудачу. – Manuel