У меня есть приложение 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
У вас есть предложения? Большое спасибо!