Географические объекты MapBox по предикату всегда возвращают пустой массив - PullRequest
0 голосов
/ 20 июня 2019

У меня есть приложение IOS (Swift), которое использует MapBox.

Моя карта имеет слой POI, который загружается из локального файла GeoJSON. Пока все хорошо, кажется, как и ожидалось.

Теперь я хотел бы выполнить некоторые операции фильтрации для моих данных POI, но когда я делаю это, он всегда возвращает пустой массив.

Вот мой код:

let url = URL(fileURLWithPath: Bundle.main.path(forResource: "test", ofType: "geojson")!)
let pois = MGLShapeSource(identifier: "dynamicpoi", url: url, options: nil)
      mapView.style?.addSource(pois)

let layer = MGLSymbolStyleLayer(identifier: "dynamicpoi", source: pois)    
layer.text = NSExpression(forKeyPath: "id")
layer.textTranslation = NSExpression(forConstantValue: NSValue(cgVector: CGVector(dx: 10, dy: -10)))
layer.textJustification = NSExpression(forConstantValue: "left")
layer.textAnchor = NSExpression(forConstantValue: "left")

mapView.style?.addLayer(layer)

let predicate = NSPredicate(format: "%K == %i", "id", 1)
let features = pois.features(matching: predicate)

//features always empty, I tried several predicates

У вас есть предложения? Большое спасибо!

...