Я пытаюсь получить значения широты / долготы в моем базовом приложении реакции, и я попробовал следующие способы:
1) Использовал модуль реакции navigator.geolocation.getCurrentPosition (), нобыло отображено нулевое значение. Вот код:
class DetailsScreen extends React.Component {
constructor(props) {
super(props);
this.state = {
latitude: null,
longitude: null,
error: null,
};
}
componentDidMount() {
navigator.geolocation.getCurrentPosition(
({coords}) => {
const {latitude, longitude} = coords
this.setState({
position: {
latitude,
longitude,
},
region: {
latitude,
longitude,
latitudeDelta: 0.001,
longitudeDelta: 0.001,
}
})
},
(error) => alert(JSON.stringify(error)),
// 'enableHighAccuracy' sometimes causes problems
// If it does, just remove it.
{enableHighAccuracy: false}
);
}
render(){
return(
<View style = {styles.container}>
<Text style = {styles.boldText}>
Latitude:
</Text>
<Text>
{this.state.latitude}
</Text>
<Text style = {styles.boldText}>
Longitude:
</Text>
<Text>
{this.state.longitude}
</Text>
</View>
)
}
}
2) Использовал службу реагирования-родной-геолокации для получения значения широты / долготы, но снова было показано нулевое значение.фрагмент кода:
class DetailsScreen extends React.Component {
constructor(props) {
super(props);
this.state = { latitude: null,
longitude: null,
error: null,
};
}
componentDidMount() {
Geolocation.getCurrentPosition(
(position) => {
this.setState({
latitude: position.coords.latitude,
longitude: position.coords.longitude,
error: null,
});
},
(error) => this.setState({ error: error.message }),
{ enableHighAccuracy: false, timeout: 30000, maximumAge: 10000 },
);
}
render(){
return(
<View style = {styles.container}>
<Text style = {styles.boldText}>
Latitude:
</Text>
<Text>
{this.state.latitude}
</Text>
<Text style = {styles.boldText}>
Longitude:
</Text>
<Text>
{this.state.longitude}
</Text>
</View>
)
}
}
3) Используется navigator.geolocation.watchCurrentPosition (), но значение широты и долготы не было получено.
Я пошел дальшеи добавьте
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
в файл manifest.xml модуля android. Так есть ли какие-либо дополнительные разрешения / изменения для android, которые я должен сделать, чтобы получить значение lat / long? Пожалуйста, помогите.