在react-native-maps

时间:2018-05-03 11:04:20

标签: google-maps react-native mapkit expo react-native-maps

我正在使用Expo框架来开发跨平台的react-native应用程序。我使用<MapView>组件来显示地图。

为了强制应用程序使用本机地图框架(iOS上的MapKit和Android中的GoogleMaps),

  1. 我们是否必须将提供者prop配置为{undefined}或{null}?
  2. 如果我们删除提供者道具,它会实现相同的结果吗?
  3. 当a时,它是否在MapKit和Google Maps之间随机选择 提供商道具未指定并在iOS中运行?
  4. 换句话说,下面两个例子都使用特定操作系统上的原生地图框架吗?

    前1 -

     <MapView
        initialRegion={{
          latitude: 65.7843,
          longitude: -42.4324,
          latitudeDelta: 0.0526,
          longitudeDelta: 0.0825,
        }}
      />
    

    前2 -

    <MapView
        provider={undefined}
        initialRegion={{
          latitude: 65.7843,
          longitude: -42.4324,
          latitudeDelta: 0.0526,
          longitudeDelta: 0.0825,
        }}
      />
    

3 个答案:

答案 0 :(得分:0)

默认情况下,MapKit适用于iOS,GoogleMaps适用于Android,即使未指定提供者道具也是如此。

答案 1 :(得分:0)

来自react-native-maps document

代表provider

  

GoogleMaps的“谷歌”,否则为null或未定义使用原生地图框架(iOS中的MapKit和Android中的GoogleMaps)。

因此,如果您没有设置它,它将在iOS上使用 MapKit ,在Android上使用 Google地图

答案 2 :(得分:0)

在Android上它可以很好地工作而不提供provider道具,但是在IOS上,默认情况下它会使用Apple Mapkit来改变它,你需要提供provider道具和值= {{ 1}}。