0

ストリートマップを3Dで描画するモバイルアプリケーションを開発しています。私が抱えている問題の1つは、重なり合うことなくストリートラベルを描画しようとしていることです。パスに沿って輪郭を描くテキストを取得できますが、それらが重なる場所がたくさんあります。

ここに画像の説明を入力してください

Googleは、交差点や重なり合いのない通りのラベルを描画するという非常に優れた仕事をしています。Android用のモバイルGoogleマップアプリケーションの3Dビューは、これを示すのに特に優れています。

私が思いついた唯一のアイデアは、衝突検出を行うことです(ラベルの近くの各文字に境界球を使用)。これは、特に一度に多くのラベルが画面に表示される場合、3Dではかなり高価です。

私は、Googleがストリートラベルの配置や、ブルートフォース衝突検出よりも安価な他のアイデアをどのように実行しているかについての洞察を探していました。Googleマップアプリは、ディスプレイをズームおよびパンすると、ラベルの配置をリアルタイムで更新するため、使用している方法がどれでもかなりパフォーマンスが高くなります。

4

1 に答える 1

0

あなたはそれを少し複雑にしすぎていると私は言います。文字ごとに衝突させようとするのではなく、行のチェーンに単純化します。直線で書かれた名前は一本の直線で表すことができます。曲がった道路内の一部のテキストは、最大で2〜3行を使用して概算できます。結局のところ、ピクセル精度である必要はありません。

また、現在の道路と「衝突」している他の道路のコレクションを作成し(橋のような位置としても)、名前が重複したり、これらの位置に近づいたりしないようにすることもできます。

于 2012-12-02T11:37:55.960 に答える