Как установить типы объектов в Mapbox Swift? - PullRequest
0 голосов
/ 01 января 2019

Использование Mapbox Swift для перечисления близлежащих достопримечательностей возвращает один результат по умолчанию.Увеличение значения limit до 10 приводит к следующей ошибке:

Предел должен быть объединен с параметром одного типа при обратном геокодировании

Эту проблему можно решить путем передачи типовфункций как POI.

curl -X GET 'https://api.mapbox.com/geocoding/v5/mapbox.places/55.274111,25.197139.json?
access_token=pk..&limit=10&types=poi'

Как установить types в Mapbox Swift?В классе ReverseGeocodeOptions такого свойства нет.

let options = ReverseGeocodeOptions(coordinate: 
        CLLocationCoordinate2D(latitude: 40.733, longitude: -73.989))

let task = geocoder.geocode(options) { (placemarks, attribution, error) in
    guard let placemark = placemarks?.first else {
        return
    }

    print(placemark.imageName ?? "")
        // telephone
    print(placemark.genres?.joined(separator: ", ") ?? "")
        // computer, electronic
    print(placemark.administrativeRegion?.name ?? "")
        // New York
    print(placemark.administrativeRegion?.code ?? "")
        // US-NY 
} 

1 Ответ

0 голосов
/ 02 января 2019

При поиске проекта MapboxGeocoder.swift я нашел список типов .Это:

  • "страна"
  • "регион"
  • "район"
  • "почтовый индекс"
  • "место"
  • " locality "
  • " окрестности "
  • " адрес "
  • " poi.landmark "
  • " poi "

ОБНОВЛЕНИЕ

Чтобы задать типы параметров для ReverseGeocodeOptions, установите свойство allowedScopes.

let geocodeOptions = ReverseGeocodeOptions(coordinate: coordinate)
geocodeOptions.allowedScopes = .pointOfInterest

Обратите внимание, чтоallowedScopes - это набор типов, поэтому вы можете создавать несколько типов, например,

geocodeOptions.allowedScopes = [.pointOfInterest, .landmark]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...