Получить название города и страны с широтой и долготой (iOS) - PullRequest
0 голосов
/ 18 декабря 2018

Я использую эту функцию:

func getDataCity(tmpLat:Double,tmpLong:Double) {

    let tmpCLGeocoder = CLGeocoder.init()

        let tmpDataLoc = CLLocation.init(latitude: tmpLat, longitude: tmpLong)

        tmpCLGeocoder.reverseGeocodeLocation(tmpDataLoc, completionHandler: {(placemarks,error) in

            guard let tmpPlacemarks = placemarks else{
                return
            }
            let placeMark = tmpPlacemarks[0] as CLPlacemark

            // Country
            guard let countryLocality = placeMark.country else{
                return
            }

            // City
            guard let cityLocality = placeMark.locality else{
                return
            }


            print(countryLocality)
            print(cityLocality)         
        })     
}

Когда я использую координаты, например, из Берлина / Германии

getDataCity(tmpLat: 52.52000659999999, tmpLong: 13.404953999999975)

функция работает нормально, она показывает мне город и страну,Однако я использую координаты из небольших городов или островов, например, Джерба ​​(остров в Тунисе)

getDataCity(tmpLat: 33.8075978, tmpLong: 10.845146699999987)

, функция ничего не печатает.Есть объяснение от Apple?Что я могу с этим поделать?


Чтобы использовать функцию в своем собственном проекте, добавьте CLLocationManagerDelegate в ViewController и не забудьте добавить Privacy - Location When In Use Usage Description в ваш Info.plist

1 Ответ

0 голосов
/ 19 декабря 2018

На картах Apple нет города для этого местоположения.Ваш код распознает страну, но не распознает там город (в этом случае вы отменяете).

Если вы откроете Apple Maps, вы заметите, что на этом острове не отмечено ни одного города, и выполните поискдля Хумта Арбаха Тунис (ближайший город) не возвращает результат в Apple Maps (странным образом возвращает Дахмани, который является городом материка; я не знаю почему).Он знает о Houmt Souq, но это довольно далеко от заданного местоположения.

Короче говоря, база данных Apple мало что знает о тунисской географии.Если вы потратите немного времени на просмотр карт Google Maps и Apple Maps, вы увидите, что есть несколько частей Туниса, о которых Apple Maps знает очень мало.Например, если вы посмотрите на Дуза в спутниковом режиме, а затем переключитесь в режим карты, вы увидите, что спутниковые снимки Apple включают в себя целую деревню (Аль-Кала), которая не нанесена на карту.И карта улиц самого Дуза (города с населением 38 тыс. Человек), прямо скажем, жалкая.

Хотя карты Apple значительно улучшились за эти годы, а в некоторых областях они теперь лучше, чемКарты Google, в большинстве мест Google, как правило, имеют гораздо лучшую информацию.Если вам нужны лучшие карты в произвольных местах, карты Google сегодня являются золотым стандартом.

...