地図上の建物のベクトルデータがあり、既知の高さに応じて押し出されて表示されます。擬似3D建物を視覚的に重ならないように並べ替え/描画する方法
私はこれが一般的な作業であることは知っていますが、私は満足のいく解決策を見いだせませんでした。
mapnikで実現されたことは、ポリゴン内のすべての頂点の最小Yで簡単なソートを使用しています。結果として、ほとんどが正しく描画されますが、一部は重複しています(約2〜3%)。多くの場合
それだけで(上記の場合のために、この配列は3-2-1だろう)(何とか?)もbuldingsをソートし、適切な順序でそれらを引くには十分です。
もっと複雑なケースでは、ポリゴンが凹形で互いに接近しすぎると、すべての壁とキャップ(屋根)を別々に描画する必要があります(下記参照)。 UPDATED
:壁やキャップ:
をので、描画する線分の2種類があります。ウォールセグメントは注文するのが簡単です(最小Yで)。私はキャップを注文する方法を理解できません。
ありがとうございます。
建物を常に上から見ている場合、帽子は常に壁の前にはありませんか?大文字と小文字が同じ高さにある場合、重なり合ってはいけません。 – Alan
@Alanいいえ、一般的には高さが違うので、簡単です。 –
ああ、高さの異なる建物があれば、物事が変わります。一般的な場合の解決策は、zバッファリングを使用することです。 – Alan