Trouver une adresse postale avec MapKit

Bonjour à  tous.

Debutant, je n'ai pas trouvé la réponse a la question toute bête : si je renseigne une adresse postale, par exemple " 4 avenue Foch 75008 Paris France" y a-il un moyen que Mapkit pointe l'adresse sur la carte ? ( et m'y conduit, mais ça c'est après ...).

Réponses

  • InsouInsou Membre
    février 2017 modifié #2


    Bonjour à  tous.

    Debutant, je n'ai pas trouvé la réponse a la question toute bête : si je renseigne une adresse postale, par exemple " 4 avenue Foch 75008 Paris France" y a-il un moyen que Mapkit pointe l'adresse sur la carte ? ( et m'y conduit, mais ça c'est après ...).




     


     


    Tu devrais créer un sujet exprès pour ton soucis, sinon après tout va se mélanger ;)


     


    Sinon pour ton soucis, ma façon de faire est la suivante, j'ai une page d'ajout (qui convertit l'adresse en coordonnée GPS et une page où il y a la map avec les points) : 


    - Lorsque je rentre une adresse, je fais appel à  un service google maps pour me retourner les coordonnées de l'adresse (latitude, longitude)


     


    Côté PHP :



    $Adresse = "4 avenue Foch, 75008 Paris, France";
    $ApiGoogle = "TA_CLE_GOOGLE_API";

    $request_url = "https://maps.googleapis.com/maps/api/geocode/xml?address=".$Adresse."&key=".ApiGoogle;
    $context = stream_context_create(array(
    'ssl'=>array(
    'verify_peer' => false
    )
    ));
    libxml_set_streams_context($context);
    $xml = simplexml_load_file($request_url) or die("url not loading");
    $status = $xml->status;
    if ($status=="OK") {
    $Latitude = (string)$xml->result->geometry->location->lat;
    $Longitude = (string)$xml->result->geometry->location->lng;
    $Adresse = $Latitude.",".$Longitude; // Adresse convertis en point GPS
    // ici tu dois retourner l'adresse pour que ton application puisse la récupérer
    }
    else if ($status=="ZERO_RESULTS") {
    echo 'Adresse introuvable !';
    }
    else {
    echo 'Erreur !';
    }

    - Je centre ma carte sur les coordonnées avec une fonction ajoutée à  MKMapView


     


    Côté swift :



    extension MKMapView {
    func zoomToPosition(latitude : Double, longitude : Double) {
    let coordinate = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
    let region = MKCoordinateRegionMakeWithDistance(coordinate, 10000, 10000)
    setRegion(region, animated: true)
    }
    }

    Utilisation : 



    let maLatutide = ""; // récupération de la latitude via ton PHP
    let maLongitude = ""; // récupération de la longitude via ton PHP
    mapView.zoomToPosition(latitude: maLatitude, longitude: maLongitude)

  • Joanna CarterJoanna Carter Membre, Modérateur

    MapKit s'occupe de tous ça :



    let location = "Plestin-les-Grèves"

    let geocoder = CLGeocoder()

    geocoder.geocodeAddressString(location)
    {
    [unowned self] place marks, error in

    guard error == nil else
    {
    // handle error

    return
    }

    guard let placemark = placemarks?.first else
    {
    // place not found

    return
    }

    let mapPlacemark = MKPlacemark(placemark: placemark)

    self.mapView... // set map region centred on place mark
    }

  • Et pour l'inverse c'est également possible ? Trouver une adresse en se basant sur une localisation GPS ?


  • Joanna CarterJoanna Carter Membre, Modérateur

    Bah ouais !



    geocoder.reverseGeocodeLocation(...)
  • Et (à  tout hasard) il est possible de récupérer le fuseau horaire d'une localisation GPS ?




  • Et (à  tout hasard) il est possible de récupérer le fuseau horaire d'une localisation GPS ?




     


    TimeZone.current.abbreviation() ?

  • CéroceCéroce Membre, Modérateur

    Et (à  tout hasard) il est possible de récupérer le fuseau horaire d'une localisation GPS ?

    Je ne vois pas trop comment... Les localisations ont un timestamp, mais NSDate n'a pas vraiment de notion de fuseau horaire. Peut-être qu'on peut savoir le décalage par rapport à  GMT, mais pas guère plus.
  • Joanna CarterJoanna Carter Membre, Modérateur
    CLPlacemark contient une propriété timeZone

  • CLPlacemark contient une propriété timeZone



    Olalalala elle a réponse à  tout ! Elle est merveilleuse ! :-)
  • Joanna CarterJoanna Carter Membre, Modérateur
    février 2017 modifié #11


    Olalalala elle a réponse à  tout ! Elle est merveilleuse ! :-)


    Pendant les derniers 25 ans j'ai appris qu'il faut lire les docs et comment faire les recherches sur Google. :)


    Mais sur ce sujet, j'ai utilisé CoreLocation, etc pour mon dernier appli.


  • CLPlacemark contient une propriété timeZone




    Pour iOS9+.


     


    Je sais, j'ai vu cette question il y a peu sur SO. Je ne suis pas fan de l'utilisation de Regex, sur une description, mais bon.

  • Joanna CarterJoanna Carter Membre, Modérateur
    mars 2017 modifié #13


    Pour iOS9+.




     


    OK.


     




    Je sais, j'ai vu cette question il y a peu sur SO. Je ne suis pas fan de l'utilisation de Regex, sur une description, mais bon.




     


    Dans un mot, eeeuuuggghhh!!!  ::)


Connectez-vous ou Inscrivez-vous pour répondre.