如何在Mapbox Swift中设置要素类型?

时间:2019-01-01 19:11:20

标签: ios swift mapbox

默认情况下,使用Mapbox Swift列出附近的兴趣点将返回一个结果。将limit增加到10会引发以下错误:

  反向地理编码时

limit必须与单个类型参数组合

这可以通过将要素类型传递为POI来解决。

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

如何在Mapbox Swift中设置typesReverseGeocodeOptions类中没有此类属性。

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 :(得分:1)

通过搜索MapboxGeocoder.swift项目,我发现了list of types。他们是:

  • “国家”
  • “地区”
  • “地区”
  • “邮政编码”
  • “地点”
  • “地区”
  • “邻居”
  • “地址”
  • “ poi.landmark”
  • “ poi”

更新

为了设置ReverseGeocodeOptions的选项类型,请设置allowedScopes属性。

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

请注意,allowedScopes是一组类型,因此您可以创建多种类型,例如

geocodeOptions.allowedScopes = [.pointOfInterest, .landmark]