Как получить полный адрес по широте и долготе на ЗДЕСЬ КАРТА iOS - PullRequest
2 голосов
/ 17 июня 2019

Я хочу получить полный адрес по широте и долготе на этой карте iOS premium 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();

                }



            }

        });

Ответы [ 2 ]

3 голосов
/ 17 июня 2019

Вы должны использовать класс NMAAddress в HERE iOS SDK.

NMAAddress предоставляет текстовую информацию об адресе, включая номер дома, название улицы, город, страну, район и многое другое.Он охватывает все об адресе или точке на карте.Класс NMAPlaceLocation представляет область на карте, где можно получить дополнительные атрибуты.Эти дополнительные атрибуты включают NMAAddress, уникальный идентификатор, метку, местоположение, местоположения доступа и NMAGeoBoundingBox для местоположения

. Для получения более подробной информации, включая примеры кодов, см. Раздел документа Геокодирование и обратное геокодирование .1009 *

0 голосов
/ 17 июня 2019

Вам нужно использовать 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)
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...