所以我试图让原生地图在世博应用程序中工作,文档页面说“在世博应用程序中使用不需要设置”
https://docs.expo.io/versions/latest/sdk/map-view/?redirected
但是在用 expo 安装库后它不起作用。
我有两个关于为什么它不起作用的基本问题:
只需通过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'
然后照常使用它,并在 react-native-maps 文档中描述:
<MapView
initialRegion={{
latitude: 37.78825,
longitude: -122.4324,
latitudeDelta: 0.0922,
longitudeDelta: 0.0421,
}}
/>
如果您使用 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 文档
中找到