Obtenez de l'emplacement actuel, de la latitude et de longitude dans ReactNative à l'aide de réagir-native-cartes
Je suis en train d'élaborer une position sur la carte. Quand je clique dans certains endroit particulier-je obtenir la latitude et la longitude, mais pas l'emplacement actuel, la latitude et la longitude.
Je ne sais pas comment trouver le hors.
Comment puis-je les obtenir et comment puis-je mettre le marqueur de position?
Voici mon code:
class Maps extends React.Component {
constructor(props) {
super(props);
this.state = {
region: {
latitude: LATITUDE,
longitude: LONGITUDE,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta: LONGITUDE_DELTA,
},
marker: {
latlng:{
latitude: null,
longitude: null,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta: LONGITUDE_DELTA
}
}
}
}
componentDidMount() {
navigator.geolocation.getCurrentPosition (
(position) => { alert("value:" + position) },
(error) => { console.log(error) },
{
enableHighAccuracy: true,
timeout: 20000,
maximumAge: 10000
}
)
}
onMapPress(e) {
alert("coordinates:" + JSON.stringify(e.nativeEvent.coordinate))
this.setState({
marker: [{ coordinate: e.nativeEvent.coordinate }]
})
}
render() {
return (
<View style={styles.container}>
<View style={{flexGrow:1}}>
<MapView
ref="map"
provider={this.props.provider}
style={styles.map}
onPress={this.onMapPress.bind(this)}
provider = {PROVIDER_DEFAULT}
mapType="standard"
zoomEnabled={true}
pitchEnabled={true}
showsUserLocation={true}
followsUserLocation={true}
showsCompass={true}
showsBuildings={true}
showsTraffic={true}
showsIndoors={true}>
</MapView>
</View>
</View>
)
}
}
Vous devez vous connecter pour publier un commentaire.
Je l'ai fait en suivant ces étapes à l'aide de
[email protected]
etreact-native-maps@^0.13.1
et à l'aide de[email protected]
etreact-native-maps@^0.15.2
à la date:Définir un
mapRegion
objet dans lestate
, la dernièrelongitude
et le dernierlatitude
commenull
:Puis à l'intérieur de votre
componentDidMount()
montre la fonction pour chaque changement dans la position actuelle:Quand il y a des changements de mise à jour dans votre
this.state.mapRegion
, en passant le réel coords et ladelta
valeurs (le mien peut être différente de la vôtre, afin de les adapter):Alors vous avez besoin de la
onRegionChange()
fonction, qui est utilisé pour "régler" les nouvelles valeurs de vos éléments au sein de lacomponentDidMount()
fonction:Démonter la géolocalisation sur
componentWillUnmount()
:Et de rendre la
MapView
en passant votremapRegion
objet, leMapView.Marker
intérieur de celui-ci est juste pour vous montrer l'actuellatitude
etlongitude
quand ils changent de:Ajouter le La feuille de style.absoluteFillObject pour votre carte afin de rendre correctement en utilisant toute la largeur et la hauteur de votre appareil.
Donc, pour votre
onPress()
fonction que vous pourriez faire quelque chose de similaire à laonRegionChange()
, c'est pour obtenir les coordonnées et les définir:Vérifier le code complet sur expo.io (bien que
react-native-maps
n'est pas installé)zoomEnabled
accessoires à false, consultez ici pour voir toutes les options disponibles.Je vous suggère de lire cette documentation officielle sur la géolocalisation: https://facebook.github.io/react-native/docs/geolocation.html
Puis, à l'emplacement actuel, vous pouvez mettre cette information dans votre état:
Vous pourrez ensuite, dans votre méthode de rendu, pour composer votre avis final avec un marqueur:
Chercher pour le lieu de l'autorisation en utilisant le code suivant:
Chercher l'emplacement actuel de la latitude et de longitude à l'aide du code suivant: