我有两种不同的可能性来按类型过滤机构,但是我真的不知道哪种方法是正确的。基本上,我想在地图上添加多个机构,作为按类型过滤的图钉。我尝试了第一种方法,但是我的代码实际上不适用于 type 字段。
我的提取代码(第一种方法):
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
}
}
已更新:
即使代码,我代码中的filteredArray仍包含 policy 类型
变量类型= [“酒吧”,“餐厅”,“赌场”]
还真的不知道如何从上次请求中获得新机构吗?例如newArray和oldArray。 newArray将包含未存储在oldArray中的新机构