Android 如何在react native中脱机使用谷歌地图

Android 如何在react native中脱机使用谷歌地图,android,google-maps,react-native,openstreetmap,Android,Google Maps,React Native,Openstreetmap,我正在尝试让用户在我的react本机应用程序中脱机使用地图,我正在使用 我只想为一个预定义的区域(比如一个城市)提供离线模式,因此我需要下载所有需要的瓷砖,这些瓷砖将是大量的图像,所以我想知道google map API中是否有办法下载地图的一个区域(如google map app)? 从文档中可以启用缓存,我也这么做(根据文档),但是,在我的情况下,我不想缓存用户去的每个地方,正如我所说,我只想缓存/下载预定义区域。 编辑1 支持离线导航。为此,我需要使用以下代码: <LocalTil

我正在尝试让用户在我的react本机应用程序中脱机使用地图,我正在使用

我只想为一个预定义的区域(比如一个城市)提供离线模式,因此我需要下载所有需要的瓷砖,这些瓷砖将是大量的图像,所以我想知道google map API中是否有办法下载地图的一个区域(如google map app)?
从文档中可以启用缓存,我也这么做(根据文档),但是,在我的情况下,我不想缓存用户去的每个地方,正如我所说,我只想缓存/下载预定义区域。
编辑1
支持离线导航。为此,我需要使用以下代码:

 <LocalTile pathTemplate={this.state.pathTemplate} tileSize={256}/>
因此,我真正的问题是如何获得我所在区域的瓷砖。
我可以通过从google maps互动程序中保存互动程序来手动完成,但是我不知道这是否合法,而且这将需要大量的时间和计算(放大时,我需要计算下一个互动程序的坐标)
因此,如果谷歌地图API提供了一种下载一个区域的地砖(带有所需的缩放)的方法,那就太好了,

另一种选择是使用另一个地图提供商,如,但在这里,我还需要找到一种方法,一次下载所有磁贴

,此时唯一支持脱机映射的脱机react本机模块是


这可能会给你一些支持


由于Google Maps SDK没有实现此功能,因此唯一的离线可能性是使用自定义互动程序。

如果您想下载,可以使用React native MapBox的SnapShotManager

请参阅SnapShotManager文档:


感谢您的回复,但是react native maps支持离线地图,问题是我需要下载瓷砖(png图像),我想对于一个城市,我需要200多张图像,因此,我想知道是否有一种方法可以立即获取主题我现在看到问题了。我会为这个问题提供更好的答案!
location/{z}/{x}/{y}
<MapView>
<LocalTile
pathTemplate="../pathToLocalStoredTile.png"
tileSize={126}
/>
</MapView>
// creates a temp file png of base map
const uri = await MapboxGL.snapshotManager.takeSnap({
  centerCoordinate: [-74.126410, 40.797968],
  width: width,
  height: height,
  zoomLevel: 12,
  pitch: 30,
  heading: 20,
  styleURL: MapboxGL.StyleURL.Dark,
  writeToDisk: true, // Create a temporary file
});

// creates base64 png of base map without logo
const uri = await MapboxGL.snapshotManager.takeSnap({
  centerCoordinate: [-74.126410, 40.797968],
  width: width,
  height: height,
  zoomLevel: 12,
  pitch: 30,
  heading: 20,
  styleURL: MapboxGL.StyleURL.Dark,
  withLogo: false, // Disable Mapbox logo (Android only)
});

// creates snapshot with bounds
const uri = await MapboxGL.snapshotManager.takeSnap({
  bounds: [[-74.126410, 40.797968], [-74.143727, 40.772177]],
  width: width,
  height: height,
  styleURL: MapboxGL.StyleURL.Dark,
});