Swift 4 фильтра Google Places - PullRequest
       19

Swift 4 фильтра Google Places

0 голосов
/ 09 апреля 2019

У меня есть две возможности фильтровать учреждения по типу, но я не знаю, какой из них правильный. По сути, я хочу добавить несколько учреждений на карте в виде Пинов, отфильтрованных по Типу . Я пробовал 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

...