Reputation: 159
The following APIs have moved to separate packages and importing them from 'expo' package is no longer supported.Permissions
This is the error I am getting while implementing the Google map. And the following screen is like this :enter image description here
I am using this code as it is. (https://snack.expo.io/@professorxii/expo-map-and-location-example)
Upvotes: 1
Views: 2231
Reputation: 423
I think the code that you shared is deprecated by Expo:.
Use this code instead:.
import React from "react";
import MapView from "react-native-maps";
import { StyleSheet, View, Dimensions } from "react-native";
import * as Location from "expo-location";
import * as Permissions from "expo-permissions";
import Constants from "expo-constants";
export default class App extends React.Component {
state = {
mapRegion: null,
hasLocationPermissions: false,
locationResult: null,
};
componentDidMount() {
this.getLocationAsync();
}
handleMapRegionChange = (mapRegion) => {
this.setState({ mapRegion });
};
async getLocationAsync() {
// permissions returns only for location permissions on iOS and under certain conditions, see Permissions.LOCATION
const { status } = await Permissions.askAsync(Permissions.LOCATION);
if (status === "granted") {
this.setState({ hasLocationPermissions: true });
// let location = await Location.getCurrentPositionAsync({ enableHighAccuracy: true });
const location = await Location.getCurrentPositionAsync({});
this.setState({ locationResult: JSON.stringify(location) });
// Center the map on the location we just fetched.
this.setState({
mapRegion: {
latitude: location.coords.latitude,
longitude: location.coords.longitude,
latitudeDelta: 0.0922,
longitudeDelta: 0.0421,
},
});
} else {
alert("Location permission not granted");
}
}
render() {
return (
<View style={styles.container}>
<MapView
style={styles.mapStyle}
region={this.state.mapRegion}
onRegionChange={this.handleMapRegionChange}
/>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "#fff",
alignItems: "center",
justifyContent: "center",
},
mapStyle: {
width: Dimensions.get("window").width,
height: Dimensions.get("window").height,
},
});
To learn more here are the links:.
Expo MapView
Expo Permissions
Expo Location
Upvotes: 2