Карта Google Поместите информацию по широте и долготе в iOS Swift - PullRequest
0 голосов
/ 11 октября 2018

У меня есть маркер на карте.При прокрутке карты маркер также перемещается.Я могу найти координаты маркера, но как найти информацию о месте, используя эту координату?

Информация о месте текущего местоположения

func locate() {
        placesClient.currentPlace(callback: { (placeLikelihoodList, error) -> Void in
            if let error = error {
                print("Pick Place error: \(error.localizedDescription)")
                return
            }

            let placeInfo = getCurrentPlaceInformation()
            self.placeNameLbl.text = placeInfo.name
            self.placeAddressLbl.text = placeInfo.address

            if let placeLikelihoodList = placeLikelihoodList {
                let place = placeLikelihoodList.likelihoods.first?.place
                if let place = place {
                    print("LOG: place name : \(place.name), place Address : \(place.formattedAddress)")

                    PLACE_NAME = place.name
                    PLACE_ADDRESS = place.formattedAddress ?? ""

                    let placeInfo = getCurrentPlaceInformation()
                    self.placeNameLbl.text = placeInfo.name
                    self.placeAddressLbl.text = placeInfo.address
                }
            }
        })
    }

Как найти пользовательские координаты, чтобы найти информацию о месте?

Ответы [ 2 ]

0 голосов
/ 11 октября 2018
    func getAddrFrmLtLng(latitude:Any, longitude:Any){

        let geoCoder = CLGeocoder()
        let location = CLLocation(latitude: latitude as! CLLocationDegrees, longitude: longitude as! CLLocationDegrees)

        geoCoder.reverseGeocodeLocation(location, completionHandler: { (placemarks, error) -> Void in

            var placeMark: CLPlacemark!
            placeMark = placemarks?[0]
            self.displayLocationInfo(placemark: placeMark)

        })
    }

    func displayLocationInfo(placemark: CLPlacemark?) -> String    {

        var locality =  ""
        var postalCode =  ""
        var administrativeArea = ""
        var country = ""
        var sublocality = ""
        var throughfare = ""

        var name = ""

        if let containsPlacemark = placemark {
            //stop updating location to save battery life
            //            locationManager.stopUpdatingLocation()
            locality = (containsPlacemark.locality != nil) ? containsPlacemark.locality! : ""
            postalCode = (containsPlacemark.postalCode != nil) ? containsPlacemark.postalCode! : ""
            administrativeArea = (containsPlacemark.administrativeArea != nil) ? containsPlacemark.administrativeArea! : ""
            country = (containsPlacemark.country != nil) ? containsPlacemark.country! : ""
            sublocality = (containsPlacemark.subLocality != nil) ? containsPlacemark.subLocality! : ""
            throughfare = (containsPlacemark.thoroughfare != nil) ? containsPlacemark.thoroughfare! : ""

        }

        var adr: String  = ""

        if throughfare != "" {

            adr = throughfare + ", "

        }
        if sublocality != "" {

            adr = adr + sublocality + ", "

        }
        if locality != "" {

            adr = adr + locality + ", "

        }
        if administrativeArea != "" {

            adr = adr + administrativeArea + ", "

        }
        if postalCode != "" {

            adr = adr + postalCode + ", "

        }
        if country != "" {

            adr = adr + country
        }

        print(adr)

        return adr
    }
0 голосов
/ 11 октября 2018

Apple обратный API Geocode

import CoreLocation
let geocoder = CLGeocoder()
geocoder.reverseGeocodeLocation(<#T##location: CLLocation##CLLocation#>, completionHandler: <#T##CLGeocodeCompletionHandler##CLGeocodeCompletionHandler##([CLPlacemark]?, Error?) -> Void#>)

Google обратный API Geocode

Добавить GoogleMaps в проект (можно использовать модули)

let geocoder = GMSGeocoder()
geocoder.reverseGeocodeCoordinate(position) { response, error in
  //
if error != nil {
                print("reverse geodcode fail: \(error!.localizedDescription)")
            } else {
                if let places = response?.results() {
                    if let place = places.first {


                        if let lines = place.lines {
                            print("GEOCODE: Formatted Address: \(lines)")
                        }

                    } else {
                        print("GEOCODE: nil first in places")
                    }
                } else {
                    print("GEOCODE: nil in places")
                }
            }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...