OSMdroid を使用してマッピング アプリケーションを実装しています。
最大 22 のズーム レベルを許可するタイル ソースを使用するカスタム MapTileProvider を実装しました。
デフォルトの MAPNIK プロバイダーは、レベル 18 までのズームのみを許可します。
問題は、ズーム レベル 19 までは PathOverlay インスタンスが完全に描画されますが、ズーム レベル 20 ~ 22 では適切に描画されないことです。誰かがパスの長さの 90% 以上を消しゴムでこすったように見えます (下のスクリーンショットを参照)。
PathOverlay の draw() メソッドを実行したところ、正しく計算されているようです(中間点は ZoomLevel 22 で正しく表示され、XY 投影は 22-ZoomLevel で除算されて現在の画面座標が取得されます)。
問題の内容とその解決方法について、誰かが洞察を提供できますか?
Cloudmade の小さなタイルを使用して MapView を呼び出すと、同じことが起こります。これは、レベル 20 までズームアップでき、「組み込み」の osmDroid タイル プロバイダー クラスです。
//mMapTileProvider = new HighResMapTileProvider(this);
mMapTileProvider = new MapTileProviderBasic(this,TileSourceFactory.CLOUDMADESMALLTILES);
mMapView = new MapView(this, 256, mResourceProxy,mMapTileProvider);
したがって、問題はタイル ソースまたはプロバイダーにあるようには見えませんが、キャンバスの描画方法に問題があるようです。これを解決する方法についてのアイデアはありますか?
zoomLevel 19 では、パスをうまく見ることができます。
しかし、次のズーム レベルでの同じパスは次のとおりです。