1

Nutiteq SDK を使用して、オフラインで作業し、小さな都市の地図を表示する必要がある Android マップ アプリを開発しているので、.mbtiles ファイルを使用しています。これまでのところ、TileMill を使用してダウンロードした .mbtile ファイル、またはむしろ彼らのデモ プロジェクトの 1 つがうまく機能しました。同じ理由で、インターネット アクセスは私にとって大きな問題になることがあるためです。正確な .mbtiles 形式で、タイル .png フォルダーから .mbtiles ファイルを作成する Python スクリプト。この方法で取得したファイルを使用しようとしましたが、ファイルのロード時に次のエラーが発生します。

10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer: Start loading  zoom=10 x=277 y=444
10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer: Start loading  zoom=10 x=278 y=444
10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer: Start loading  zoom=10 x=277 y=443
10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer: Start loading  zoom=10 x=278 y=443
10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer: Start loading  zoom=10 x=277 y=445
10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer: Start loading  zoom=10 x=278 y=445
10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer task: Start loading  zoom=10 x=277        y=444
10-02 00:11:42.340: DEBUG/TileDatabaseHelper(404): not found z=10 x=277 y=579
10-02 00:11:42.340: ERROR/hellomap(404):      com.nutiteq.layers.raster.MBTilesMapLayer$DbFetchTileTask: No data.
10-02 00:11:42.536: DEBUG/hellomap(404): DbMapLayer task: Start loading  zoom=10 x=278 y=444
10-02 00:11:42.636: DEBUG/TileDatabaseHelper(404): not found z=10 x=278 y=579
10-02 00:11:42.636: ERROR/hellomap(404):     com.nutiteq.layers.raster.MBTilesMapLayer$DbFetchTileTask: No data.
10-02 00:11:42.746: DEBUG/hellomap(404): DbMapLayer task: Start loading  zoom=10 x=277 y=443
10-02 00:11:42.746: DEBUG/TileDatabaseHelper(404): not found z=10 x=277 y=580
10-02 00:11:42.746: ERROR/hellomap(404): com.nutiteq.layers.raster.MBTilesMapLayer$DbFetchTileTask: No data.
10-02 00:11:42.947: DEBUG/hellomap(404): DbMapLayer task: Start loading  zoom=10 x=278 y=443
10-02 00:11:43.186: DEBUG/hellomap(404): onDrawFrame: Last frame time 325ms
10-02 00:11:43.346: DEBUG/TileDatabaseHelper(404): not found z=10 x=278 y=580
10-02 00:11:43.360: ERROR/hellomap(404): com.nutiteq.layers.raster.MBTilesMapLayer$DbFetchTileTask: No data.
10-02 00:11:43.360: DEBUG/hellomap(404): DbMapLayer task: Start loading  zoom=10 x=277 y=445
10-02 00:11:43.596: DEBUG/hellomap(404): onDrawFrame: Last frame time 230ms
10-02 00:11:43.706: DEBUG/TileDatabaseHelper(404): not found z=10 x=277 y=578
10-02 00:11:43.706: ERROR/hellomap(404): com.nutiteq.layers.raster.MBTilesMapLayer$DbFetchTileTask: No data.
10-02 00:11:43.706: DEBUG/hellomap(404): DbMapLayer task: Start loading  zoom=10 x=278 y=445
10-02 00:11:43.706: DEBUG/TileDatabaseHelper(404): not found z=10 x=278 y=578
10-02 00:11:43.706: ERROR/hellomap(404): com.nutiteq.layers.raster.MBTilesMapLayer$DbFetchTileTask: No data.
10-02 00:11:43.966: DEBUG/hellomap(404): onDrawFrame: Last frame time 249ms

スクリプトに何か問題があるのではないかと推測していますが、実際には彼は同じ .mbtiles ファイルを MapBox iOS SDK で問題なく使用しています。

マップ、できれば MBTiles や Nutiteq で作業したことがある人が洞察を提供してくれることを期待していました。

ありがとう。

4

1 に答える 1

1

ログによると、要求されたマップ タイルがデータベースから欠落しているようです。あなたはそれをチェックすることができます

sqlite3 <file>.mbtiles
sqlite> select * from tiles where zoom_level=10 and tile_column=277 and tile_row=579;

これが空のデータを返す場合、データはそこにありません。行が返された場合は、ファイルが正しく開かれたことを確認してください。

TMS は一般的な Web マップ タイル (OSM など) とは異なる起源を持つため、y が反転する可能性もあります。これはアプリケーションで変更できます。MBTilesLayer には setTmsY() があります。true に設定してみてください。

于 2013-10-02T07:58:25.390 に答える