У меня есть две возможности фильтровать учреждения по типу, но я не знаю, какой из них правильный. По сути, я хочу добавить несколько учреждений на карте в виде Пинов, отфильтрованных по Типу . Я пробовал 1-й способ, но мой код не работает с полем type .
- 1-й способ, если выбрать ALL учреждений и отфильтровать их как массив, а затем добавить к карте
- 2-й способ - сделать множественные выборки запросов с разными типами, такими как param (на самом деле не понимаю, как это должно работать, как очистить карту и т. Д.)
Мой код извлечения (пробовал 1-й способ):
func fetchNearbyPlaces(coordinate: CLLocationCoordinate2D, currentRadius: Double) {
UI?.map.clear()
newPlacesArray.removeAll()
dataProvider.fetchPlacesNearCoordinate(coordinate, radius: currentRadius, types: shoppingTypes) {[weak self] places in
guard let self = self else { return }
var types: [String] = []
self.filterVC.filterCallback = { (filter) in
types = filter
}
var filteredArray: [PlaceContent] = []
places.forEach{
self.newPlacesArray.append($0)
}
for el in types{
filteredArray = self.newPlacesArray.filter{let elem = $0; return (elem.typePlaceSet?.contains{$0.name == el}) != nil}
}
filteredArray.forEach{
let marker = PlaceMarker(place: $0)
marker.map = self.UI?.map
}
self.newCoordinate = coordinate
}
}
ОБНОВЛЕНИЕ:
FilterArray из моего кода содержит политический тип, даже когда
var types = ["bar", "restaurant", "casino"]
Также не знаете, как получить новые учреждения по последнему запросу? Например, newArray и oldArray. newArray будет содержать новые учреждения, которые не хранятся в oldArray