4

Google Maps API を使用して地図を含む Android アプリを作成しています。

の独自の拡張機能を使用して、カスタム マップ タイルを読み込みますcom.google.android.gms.maps.model.UrlTileProvider

2 セットのマップ タイルがあります。1 つは高密度画面用に設計され、もう 1 つは低密度画面用に設計されています。高密度のマップ タイル セットは、より大きなテキストなどを備えています。どちらのセットも、256x256 ピクセルのマップ タイル サイズを使用します。

以下から取得した画面密度に応じて、2 つのセットを切り替えます。

DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
Float density = displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT;

ここまでは順調ですね。

密度に応じて適切なマップ タイル セットが表示されます。

ただし、高密度デバイス (多くのピクセルが 1 つの論理密度非依存ピクセル (DiP/DP) として扱われる) では、各マップ タイル ピクセルが 1 つのデバイス DiP/DP に一致するようにスケーリングされます。つまり、デバイス機能の密度が高いほど、レンダリング時のマップ タイルの見栄えが悪くなります。

コンストラクターの幅/高さでしばらく遊んでいUrlTileProviderますが、効果がないようです。

また、問題の解決に役立つ設定が Google Maps API に見つかりません。

stackoverflow または他のサイトで解決策が見つかりませんでした。

私の問題を解決する方法を知っている人はいますか?

4

2 に答える 2

0

サーバーを管理しないと、品質を管理できません。

1 つ上のズーム レベルから 4 つの画像を読み込み、それらをサイズ 512 x 512 のビットマップにマージして、xhdpi デバイスで使用することができます。TileProvider が大きな画像を正しく処理しているかどうかを確認することから始めます。

于 2013-08-05T07:28:48.663 に答える