簡體   English   中英

如何在HERE MAP iOS上從經緯度獲取完整地址

[英]How to get full address from latitude and longitude on HERE MAP iOS

我想在此處的地圖iOS高級sdk中按緯度和經度獲取完整的地址。在Android中,我看到可以使用ReverseGeocodeRequest按緯度和經度獲取地址,但我沒有為iOS找到任何東西。

目前,我正在從CLLocationCoordinate2D獲取地址,但是我認為如果通過HERE MAP SDK來獲取地址會更好,因為我使用的是HERE MAP,而不是Apple MAP。 我已經附上了下面的android代碼。

GeoCoordinate vancouver = new GeoCoordinate(latitude,longitude);

        new ReverseGeocodeRequest(vancouver).execute(new ResultListener<Location>() {

            @Override

            public void onCompleted(Location location, ErrorCode errorCode) {

                try {

                    assetData.address = location.getAddress().toString().replace("\n", "");



                } catch (NullPointerException e) {

                    e.printStackTrace();

                }



            }

        });

您必須在HERE iOS SDK中使用NMAAddress類。

NMAAddress提供文本地址信息,包括門牌號,街道名稱,城市,國家/地區等。 它涵蓋了有關地址或地圖上某個點的所有內容。 NMAPlaceLocation類表示地圖上可以檢索其他屬性的區域。 這些其他屬性包括NMAAddress,唯一標識符,標簽,位置,訪問位置以及該位置的NMAGeoBoundingBox

請檢查文檔地理編碼和反向地理編碼部分以獲取更多詳細信息,包括示例代碼。

您需要使用Google API從地理坐標中獲取地址,為此請使用以下代碼

func getAddressFromLatLong(latitude: Double, longitude : Double) {
    let url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=\(latitude),\(longitude)&key=YOUR_API_KEY_HERE"

    Alamofire.request(url).validate().responseJSON { response in
        switch response.result {
        case .success:

            let responseJson = response.result.value! as! NSDictionary

            if let results = responseJson.object(forKey: "results")! as? [NSDictionary] {
                if results.count > 0 {
                    if let addressComponents = results[0]["address_components"]! as? [NSDictionary] {
                        self.address = results[0]["formatted_address"] as? String
                        for component in addressComponents {
                            if let temp = component.object(forKey: "types") as? [String] {
                                if (temp[0] == "postal_code") {
                                    self.pincode = component["long_name"] as? String
                                }
                                if (temp[0] == "locality") {
                                    self.city = component["long_name"] as? String
                                }
                                if (temp[0] == "administrative_area_level_1") {
                                    self.state = component["long_name"] as? String
                                }
                                if (temp[0] == "country") {
                                    self.country = component["long_name"] as? String
                                }
                            }
                        }
                    }
                }
            }
        case .failure(let error):
            print(error)
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM