react-native-maps 与博览会

问题描述 投票:0回答:2

所以我试图让原生地图在世博应用程序中工作,文档页面说“在世博应用程序中使用不需要设置”

https://docs.expo.io/versions/latest/sdk/map-view/?redirected

但是在用 expo 安装库后它不起作用。

我有两个关于为什么它不起作用的基本问题:

  1. 您将 Google 控制台的 API 密钥放在哪里?
  2. 如何让 Google 地图与控制台上的 expo 应用程序配合使用,启用 android sdk?
react-native react-native-maps
2个回答
33
投票

使用方法

安装并导入

对于当前的博览会版本

只需通过expo添加react-native-maps即可:

npx expo install react-native-maps
如文档中所述此处之后,您可以像不使用expo一样使用react-native-maps。

请注意,如果您使用 expo go,则无需添加任何内容,因为它已经捆绑在 expo go 中。

只需像这样导入MapView:

import { MapView } from 'react-native-maps'

对于旧版博览会版本

您可以从expo导入MapView,因为react-native-maps包含在expo中。 (如果您使用 expo 并且没有弹出您的应用程序,则没有任何集成或链接步骤。我想文档对此不是很清楚......)

只需从博览会导入即可:

import { MapView } from 'expo'

简单的MapView使用

然后照常使用它,并在 react-native-maps 文档中描述:

<MapView
    initialRegion={{
      latitude: 37.78825,
      longitude: -122.4324,
      latitudeDelta: 0.0922,
      longitudeDelta: 0.0421,
    }}
  />

Api密钥集成

如果您使用 expo,来自 google play 控制台的 api 密钥属于 app.json 的 android 和 ios 部分。

将其添加到您的 app.json > android.config:

"googleMaps": { "apiKey": "<android maps api key>" }

并将其添加到您的 app.json > ios.config:

"googleMapsApiKey": "<ios maps api key>"

你的 app.json 最后应该包含这样的内容(以及通常在那里的所有其他内容):

{
    "expo": {
        "android": {
            "package": "com.company",
            "config": {
                "googleMaps": {
                    "apiKey": "<android maps key>"
                }
            }
        },
        "ios": {
            "bundleIdentifier": "com.company",
            "config": {
                "googleMapsApiKey": "<ios maps api key>"
            }
        }
    }
}

有关 API 密钥集成的更多信息可以在 expo 文档

中找到

8
投票

2020 年夏季更新:

expo
软件包不再支持其内置的
MapView
组件。 所以,而不是像这样从
MapView
导入
expo
(如 @Leo 提到的):

import { MapView } from 'expo';

您应该直接安装

react-native-maps
模块以从那里导入 MapView 组件,如下所示:

import MapView from 'react-native-maps';

您可以使用错误消息

所示
中提到的expo-cli命令或您选择的包管理器(例如
npm
yarn
)来下载react-native-maps。

© www.soinside.com 2019 - 2024. All rights reserved.