Dans l'exemple de réagissent natif mapview ils ont latitudeDelta et longitudeDelta Est-ce égal à la hauteur et à la largeur? Et dans quelle unité? Selon leur commentaire de github , il est écrit
Distance entre le minimum et le maximum de latitude/longitude à afficher.
Mais ça ne m'aide pas. Je veux savoir ce que l'utilisateur voit sur la carte.
Je suis aussi venu ici parce que je ne trouvais pas de bonne documentation et que Google n'aidait pas. Ce qui suit est issu de mes propres recherches:
Un seul des latitudeDelta
ou longitudeDelta
est jamais utilisé pour calculer la taille de la carte. Il prend le plus grand des deux selon la formule suivante et ignore l'autre. Ceci est fait pour éviter d'étirer la carte.
longitudeDelta/width
et latitudeDelta/height
, compare ces 2 valeurs calculées et prend la plus grande des deux.longitudeDelta
, alors le bord gauche est longitude - longitudeDelta
et le bord droit est longitude + longitudeDelta
. Le haut et le bas représentent les valeurs nécessaires pour remplir la hauteur sans étirer la carte.latitudeDelta
, alors le bord inférieur est latitude - latitudeDelta
et le bord supérieur est latitude + latitudeDelta
. Les valeurs de gauche et de droite correspondent aux valeurs nécessaires pour remplir la largeur sans étirer la carte.Voici quelques exemples:
// this uses latitudeDelta because 0.04/300 > 0.05/600
<MapView
style={{width: 600, height: 300}}
region={{
latitude: 31.776685,
longitude: 35.234491,
latitudeDelta: 0.04,
longitudeDelta: 0.05,
}}
/>
// this uses longitudeDelta because 0.05/600 > 0/myVar when myVar > 0
<MapView
style={{width: 600, height: myVar}}
region={{
latitude: 40.689220,
longitude: -74.044502,
latitudeDelta: 0,
longitudeDelta: 0.05,
}}
/>
essayez googler j'ai trouvé réponse en minute
Quantité de distance est-ouest (mesurée en degrés) à afficher pour la région de la carte. Le nombre de kilomètres parcourus par une plage de longitude varie en fonction de la latitude actuelle. Par exemple, un degré de longitude couvre une distance d’environ 111 kilomètres à l’équateur mais se réduit à 0 kilomètre aux pôles.
il y a aussi un problème dans GitHub https://github.com/react-community/react-native-maps/issues/637
j'ai trouvé cette chose aussi https://en.wikipedia.org/wiki/Latitude#Length_of_a_degree_of_latitude
Vous avez besoin
"centroid": {
"latitude": "24.2472",
"longitude": "89.920914"
},
"boundingBox": {
"southWest": {
"latitude": "24.234631",
"longitude": "89.907127"
},
"northEast": {
"latitude": "24.259769",
"longitude": "89.934692"
}
}
ou des données similaires pour calculer correctement latitudeDelta et longitudeDelta.
Vous trouverez ci-dessous un code de démonstration pour réagir/réagir natif.
componentDidMount() {
const { width, height } = Dimensions.get('window');
const ASPECT_RATIO = width / height;
const lat = parseFloat(centroid.latitude);
const lng = parseFloat(centroid.longitude);
const northeastLat = parseFloat(boundingBox.northEast.latitude);
const southwestLat = parseFloat(boundingBox.southWest.latitude);
const latDelta = northeastLat - southwestLat;
const lngDelta = latDelta * ASPECT_RATIO;
this.setState({
region: {
latitude: lat,
longitude: lng,
latitudeDelta: latDelta,
longitudeDelta: lngDelta
}
})
}