0

オフライン MBtiles を読み取り、実行時に緯度と経度の観点からバウンディング ボックスを見つける方法を探しています。境界ボックスをハードコーディングしたくありません。MBTiles ファイルから読み取り、左上と右下の緯度と経度の値に基づいて中心を把握できるようにしたいと考えています。マップが長方形であることを前提としています (これは適切な前提です)。単純な三角の中点計算です。

 MapView.getBoundingBox

これは、画面に表示されているマップの境界ボックスのみを返します。Offline .Mbtiles マップ ファイル全体のバウンディング ボックスを読み取る必要があります。

また、実行時に .mbtiles ファイルの最大ズームと最小ズームを読み取るにはどうすればよいですか?

4

1 に答える 1

0

私の知る限り、MBTiles は拡張子が異なる単なる Sqlite データベースです。次のようなクエリを実行できることを意味します

select max(z) from tiles;//最大ズームレベル

select min(z) from tiles;//最小ズームレベル

X、Y座標系から緯度/経度に変換する必要があるため、境界を取得するのは少し面倒です(これはあなたが望むものですよね?)

上記と同じクエリを実行して、最小/最大の X 値と Y 値を取得します。次に、このhttp://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#Tile_bounding_boxなどの OSM wiki に投稿されたアルゴリズムの 1 つを実行して、 Lat/Lon に変換します。

これはすでに OsmDroid に実装されていると確信しているので、必要なのは関数呼び出しだけです。

于 2015-07-23T11:37:14.947 に答える