Comment ajouter une Carte à votre application avec MapKit et Emplacement principal – Guide Swift iOS

Étape 4: Bouton Localiser: Afficher l’emplacement sur la Carte

Première étape, nous récupérons l’emplacement actuel lorsque l’utilisateur appuie sur le bouton Localiser-moi 🧭.

Le gestionnaire de localisation vous donne l’emplacement actuel dans un objet CLLocation avec locationManager.location. Cet objet contient différentes informations, y compris les valeurs de coordonnées de latitude et de longitude.

Ajouter une annotation à la carte

Créons une nouvelle fonction qui ajoutera une annotation à la carte aux coordonnées données.

La fonction suivante crée un nouvel objet MKPointAnnotation et l’ajoute à la carte après avoir supprimé toutes les annotations précédentes. Il zoome et fait également défiler la carte pour placer l’annotation nouvellement ajoutée au centre de l’écran.

Ajouter une annotation à la Carte

Maintenant que nous avons cette fonction, vous pouvez l’appeler avec les informations de localisation actuelles que vous souhaitez afficher, dans votre fonction de bouton IBAction. Pour l’instant, nous allons mettre nil comme titre car nous n’avons pas encore cette information.

updateLocationOnMap(to: locationManager.location, with: nil)

Ajoutez l’adresse complète de l’emplacement comme titre à l’annotation

Maintenant, nous allons ajouter l’adresse complète de l’emplacement comme titre à l’annotation. CoreLocation nous permet de le faire facilement avec CLGeocoder.

Créez une extension à CLLocation et ajoutez la fonction suivante:

Get PlaceMark pour l’emplacement

Il inversera l’emplacement du géocode et vous donnera un CLPlacemark, contenant toutes les informations nécessaires pour extraire l’adresse postale complète.

Les informations d’adresse sont stockées comme ci-dessous dans l’objet Repère. Pour obtenir une valeur de chaîne de l’adresse complète, vous devrez concaténer les composants dont vous avez besoin. Voici un exemple pour l’adresse du siège social d’Apple dans le tableau ci-dessous:

Valeurs correspondant aux propriétés CLPlacemark

Ajoutons une fonction à notre extension CLLocation qui nous donnera directement l’adresse complète. Pour plus de commodité, vous pouvez ajouter une nouvelle propriété dans une extension CLPlacemark. Dans cet exemple, cette propriété est appelée stringValue.

Obtenez l’adresse de chaîne complète de l’emplacement

Maintenant, mettons à jour l’appel à updateLocationOnMap avec notre nouvelle fonction lookUpLocationName.

Afficher l’emplacement actuel sur la carte à partir du bouton appuyez sur

Créez et exécutez votre application: maintenant, lorsque vous appuyez sur le bouton Localiser-moi, votre emplacement actuel est ajouté sur la carte, affichant votre adresse complète de localisation actuelle!

Ajouter un repère à partir d’une adresse de chaîne à la carte

La plupart des fonctions que nous avons écrites à l’étape 3 pour le bouton localiser-moi seront également utilisées dans cette partie. Nous ajouterons seulement une nouvelle fonction updatePlaceMark(to address: String) et l’appellerons lors de la validation de TextField.

Dans cette fonction, nous obtiendrons d’abord des repères à partir de la valeur de chaîne saisie par l’utilisateur, puis nous mettrons à jour la carte avec le premier repère avec sa valeur d’adresse complète.

Afficher l’emplacement sur la carte en fonction d’une adresse de chaîne

Notez que geocodeAddressString n’est pas une fonction de recherche d’emplacement, donc pour que cela fonctionne, il faudra soit une adresse valide, soit un emplacement identifiable, une ville, un état ou un pays dans le champ pour avoir un résultat.

Étape 6: Afficher l’emplacement en temps réel sur la carte

Pour afficher l’emplacement en temps réel, ajoutez la fonction déléguée suivante dans l’extension CLLocationManagerDelegate que nous avons déjà créée.

Le Gestionnaire de localisation appellera cette fonction automatiquement lors des mises à jour de localisation, selon la stratégie définie au début.

Afficher l’emplacement en temps réel sur la carte

Étape 7: Construire & Exécuter

Construire et exécuter votre application: Vous disposez désormais d’une application de carte qui vous indique votre position actuelle, affiche l’adresse complète en temps réel, vous localise sur un bouton localiser-moi et vous permet de rechercher des emplacements à partir d’un champ de texte.



+