6
votes

Google Maps iOS SDK: Distance entre les points d'est et ouest sur la carte

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.


0 commentaires

3 Réponses :


10
votes

Voici une fonction d'assistant qui peut être utilisée pour calculer la distance en mètres entre deux coordonnées: xxx

mise à jour:

Ç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.

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: XXX

Si vous souhaitez facturer la rotation / inclinaison, vous pouvez envelopper la région visible dans un gmscoordinateds , puis calculer la distance entre le sud-est et le sud-ouest coins, par exemple: xxx

Cependant, cela pourrait être plus large que la zone réellement visible à l'écran, car le gmscoordinateds enveloppe le quadrilatère de la Région visible dans une boîte à bornes alignée sur l'axe.

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: xxx


4 commentaires

+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.



0
votes

Heres le code de recherche de distance entre deux points xxx


0 commentaires