2016-11-10 7 views
3

高さが押されたポリゴンに一貫して表示されるようにマップピンを取得しようとすると、多くの困難がありました。私のアプリでは、私は任意の値に基づいて建物の高さを押し出しています。セシウム - extrudedHeightが設定されたポリゴンに看板/マップピンを配置する

その後、それらを選択すると、地図ピンのカスタム画像が添付されたビルボードが追加されます。

//Get position of selected entity and add billboard at same position 

var mPos = pCoords.positions[0]; 

var selectedPin = viewer.entities.add({ 

    name : 'selBoutique', 
    position : mPos, 
    billboard : { 
     image : './img/marker.png', 
     verticalOrigin : Cesium.VerticalOrigin.BOTTOM, 
     eyeOffset: new Cesium.Cartesian3(0, 4, 0) 
    } 

}); 

私は一貫してその表示を維持するために、下に垂直方向の原点を設定していて、3Dビューで様々な高さの建物に適しています設定を見つけるためにオフセットを実験してきました。

異なる高さの建物によって決してブロックされないこれらのピンの位置を達成しようとするときに考慮すべき他の要因はありますか?私はオフセットの値を建物の高さに基づいて動的に設定しようとしました。おそらく、私はこの間にもう少しこれで遊ぶだろう。

スクリーンショット:

angled view screenshot

top view screnshot

+0

スクリーンショットを追加できますか?確かに – emackey

+0

!追加されました。 –

+0

'Cesium.VerticalOrigin.BOTTOM'に加えて、ピンの実際の位置を建物の高さで修正してみてください。基本的には、ピンを1階ではなく建物の屋根の中心に配置します。アイオフセットをオフにしますが、VerticalOrigin.Bottomはそのままにしておきます。 – emackey

答えて

2

建物の高さにより、ピンの実際の位置を変更します。基本的には、ピンを1階ではなく建物の屋根の中心に配置します。その後、eyeOffsetをオフにしますが、VerticalOrigin.BOTTOMの設定を維持します。

+1

これは間違いなく質問に答えます。しかし、ビルボードの上に掲示板を追加すると、建物の形が変わるという点で、関連するかもしれないし、そうでないかもしれない、それに続く問題がありました。具体的には、ポリゴンの断面を切り取る。背の高い建物では、建物の背が高くなり、形が整います。いくつかのスクリーンショットで新しい質問を開始する必要がありますか? –

+0

[issue#2130](https://github.com/AnalyticalGraphicsInc/cesium/issues/2130)のように聞こえます。あなたが冒険しているならば、 '広告掲示板透明性'ブランチを構築して、それがよりうまくいくかどうかを試してみてください。ピン数が多いとパフォーマンスが低下しますが、問題を修正する必要があります。 – emackey

+0

遅れて申し訳ありません。これは非常によく似た問題のようです。私のクライアントはその間に別のソリューションを選択しましたが、自分の時間にそのブランチを構築し、私の発見を報告しています。再度、感謝します :) –

関連する問題