谷歌地图在iOS Swift中按纬度和经度显示位置信息

Alw*_*win 2 google-maps ios google-places-api swift swift4

我在地图上有一个标记。滚动地图时,标记也会移动。我可以找到标记坐标,但如何使用该坐标查找位置信息?

当前位置的地点信息

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
                }
            }
        })
    }
Run Code Online (Sandbox Code Playgroud)

如何查找自定义坐标以查找位置信息?

Sat*_*ish 8

Apple 反向地理编码 API

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

谷歌反向地理编码 API

将 GoogleMaps 添加到项目中(可以使用 pods)

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")
                }
            }
}
Run Code Online (Sandbox Code Playgroud)