web-dev-qa-db-ja.com

反応ネイティブでグーグルマップをオフラインで使用する方法

ユーザーが反応ネイティブアプリでオフラインでマップを使用できるようにしようとしています。 react-native-maps を使用しています

事前定義されたエリア(都市としましょう)だけにオフラインモードを提供したいので、膨大な数の画像になる必要なタイルをすべてダウンロードする必要があるので、GoogleマップAPIに方法があるのだろうか(Googleマップアプリのように)地図のエリアをダウンロードするには?
ドキュメントからキャッシングを有効にすることは可能ですが、(ドキュメントに従って)同じことをしますが、私の場合、私が言ったように、ユーザーが行くすべての場所をキャッシュしたくありません定義済みの領域をキャッシュ/ダウンロードしたいだけです。
編集1
react-native-maps オフラインナビゲーションをサポートします。このコードを使用する必要があります:

 <LocalTile pathTemplate={this.state.pathTemplate} tileSize={256}/>

pathTemplateは、次の階層を持つ必要がある私のタイルの場所を指します:

location/{z}/{x}/{y}

したがって、私の本当の問題は、私の領域のタイルを取得する方法です。
Googleマップタイルからタイルを保存することで手動で行うことができます server ですが、それが正当かどうかはわかりません。また、多くの時間と計算が必要になります(ズームイン、次のタイルのコーディネートを計算する必要があります)
だから、グーグルマップAPIがエリアのタイルを(必要なズームで)ダウンロードする方法を提供するなら、それは素晴らしいでしょう、
別の代替案は OpenStreetMAp のような別のマッププロバイダーを使用することですが、ここでも、すべてのタイルを一度にダウンロードする方法を見つける必要があります

8
aName

更新があります! mapboxがまだ安定していないため、react-native-mapsオフラインモードも使用する必要があります

1
Aya Magdy

現時点で、オフラインマッピングをサポートする唯一のオフライン反応ネイティブモジュールは react-native-mapbox-gl。 です。

<MapView>
<LocalTile
pathTemplate="../pathToLocalStoredTile.png"
tileSize={126}
/>
</MapView>

これはあなたにいくらかのサポートを与えるかもしれません。

Google Maps SDKにはこれが実装されていないため、オフラインでの唯一の可能性はカスタムタイルを使用することです。

0
Rishav Kumar