2017-01-10 8 views
2

セシウムでポリラインコレクションを表示する方法をドキュメントを読んだ後に私がよくわからないので、何かを間違って行う必要があります。私は、ポリラインコレクションの表示に関するドキュメントhereに明示的に方法やチュートリアルが表示されていません。また私は、その後の反復のPolylineCollectionのadd(および提案のためのサンプルコードを使用してみましたが唯一セシウムでポリラインコレクションを表示するには?

viewer.entites.add(Polyline) 

と特異ポリラインを表示this one、という点に多くのように見える、私は見つけることができる砂箱であっ任意のチュートリアルがありますこのサンドボックス内のトグル)が、何も表示されず、エラーが表示されません:

// Create a polyline collection with two polylines 
var polylines = new Cesium.PolylineCollection(); 
polylines.add({ 
    positions : Cesium.Cartesian3.fromDegreesArray([ 
    -75.10, 39.57, 
    -77.02, 38.53, 
    -80.50, 35.14, 
    -80.12, 25.46]), 
    width : 2 
}); 

polylines.add({ 
    positions : Cesium.Cartesian3.fromDegreesArray([ 
    -73.10, 37.57, 
    -75.02, 36.53, 
    -78.50, 33.14, 
    -78.12, 23.46]), 
    width : 4 
}); 
// Toggle the show property of every polyline in the collection 
var len = polylines.length; 
for (var i = 0; i < len; ++i) { 
    var p = polylines.get(i); 
    p.show = true; 
} 

私はこれらをレンダリングするために向けドキュメントが私を指すことになり意味他のかわからないんだけど。どんな助けもありがとうございます。

答えて

1

ここでセシウムAPI層を混ぜています。セシウムには、パブリックAPIの2つの異なるレイヤー、「エンティティ」レイヤーおよび「プリミティブ」レイヤーがあります。プリミティブレイヤーはグラフィックスプリミティブのためのものです:ポリラインの全コレクションは事実上単一のグラフィックスプリミティブ(内部的には単一の "描画呼び出し")であり、看板のコレクションは別の単一プリミティブなどです。 "エンティティ"は、物体または車両のレベル概念、例えば単一のトラックエンティティは、トラックがどこにどこにあったかを示すすべてのビルボード、ラベル、およびポリラインを有することができる。別々のエンティティのコレクションは、グラフィックスのパフォーマンス上の理由から、看板の1つのコレクションとポリラインのコレクションなどを共有します。

一般的には、グラフィックスプリミティブのコレクションではなく実際のオブジェクトの観点から考えることができるように、可能な限り実用的なレイヤーを使用することをお勧めします。しかし、時には、静的プリミティブのような大量のコレクションがあり、単純にそのコレクションを直接提出する方が効果的です。

demo you linkedでは、コードには多数のエンティティが作成され、それぞれにポリラインが付加されています。しかし、あなたが投稿したコードでは、手動でPolylineCollectionを作成し、それを表示しようとしています。だから、あなたのコードを修正し、この行を削除します

viewer.entites.add(Polyline) 

をして、この行を追加します。polylinesはあなたのコード内で宣言、しかしPolylineは単なるクラスであることを

viewer.scene.primitives.add(polylines); 

注意を。また、entityではなく、scene.primitiveとしてpolylineCollectionを追加しています。

本当にこれを使用しているかによって、ここでコードをスクラップし、リンクしたエンティティデモコードを再コピーし、そのフォームを代わりに使用する方がよい場合もあります。

+0

これは意味があります!シュート、私は特定のことをやろうとしているだけでドキュメントを飛ばしていた。私はいくつかの中核概念を見逃していました説明をありがとうございます。私の実際のポリラインのアプリケーションでは、参照位置がエンティティであるが、実際にはエンティティオブジェクトに関連付けられていないポリラインが多数あります(データモデル内で非表示/表示/表示する必要があるため)。ですから、エンドポイントの位置を依然として割り当てることができる限り、それらのプリミティブを保持することができると思います。ちょうど "大声で"考えています。あなたの答えは私の混乱を解消した。ありがとう! – ThePartyTurtle

関連する問題