Comment puis-je calculer la distance (en mètres) entre le point East et le point ouest de la carte? Supposons que l'utilisateur a changé la position défilante de la carte, puis je saisis le mouvement avec MapView: DidChangecamerapImposition: méthode déléguée, mais je ne sais pas comment calculer la distance. p>
3 Réponses :
Voici une fonction d'assistant qui peut être utilisée pour calculer la distance en mètres entre deux coordonnées: Ça dépend Ce que vous entendez par «East» et «Ouest» de la carte, car la carte peut être tournée ou inclinée. Même s'il n'est pas incliné ou pivoté, en raison de la courbure de la terre, la largeur de la carte sera différente en mètres entre le haut de la carte et le fond (le bord se rapproche de l'équateur sera plus large en mètres que le bord qui est plus éloigné de l'équateur). La différence sera moins zoomée dans vous. P> mais en supposant que vous vouliez avoir la distance en mètres entre les coins inférieurs gauche et inférieur de la carte, vous pouvez utiliser ceci: p> Si vous souhaitez facturer la rotation / inclinaison, vous pouvez envelopper la région visible dans un Cependant, cela pourrait être plus large que la zone réellement visible à l'écran, car le Une autre option serait de choisir des points de chaque côté de la trame de la vue Carte, puis utilisez la projection de la vue Carte pour les convertir en Lat / Lon, par exemple: p> gmscoordinateds code>, puis calculer la distance entre le sud-est et le sud-ouest coins, par exemple: p>
gmscoordinateds code> enveloppe le quadrilatère de la Région visible dans une boîte à bornes alignée sur l'axe. P>
+1 - Alors passez l'emplacement du NE et de l'emplacement SW et vous obtenez la distance diagonale entre celles ... Si vous voulez voir combien la carte a changé, obtenez l'ancien centre et la nouvelle position du centre de Didchangecamera
2) Obtenir le vieux centre et le nouveau centre ne suffit pas depuis que le zoom aurait pu changer
J'ai ajouté une mise à jour avec d'autres informations sur la façon dont vous pourriez le calculer - cela dépend de ce que vous entendez par l'est et l'ouest.
Pas de soucis :) Btw J'ai ajouté votre correctif de code suggéré, merci - je ne sais pas pourquoi les autres personnes l'ont rejetée.
Heres le code de recherche de distance entre deux points
Le Google Maps iOS sdk contient un groupe de Aidateurs de géométrie a >. Vous voulez cette fonction: p> "retourne la grande distance du cercle entre deux coordonnées, en mètres, sur Terre.
Ceci est la distance la plus courte entre les deux coordonnées sur la sphère. Les deux coordonnées doivent être valides. " P> p>