Swift 4 Google Places过滤器针脚

时间:2019-04-09 05:28:12

标签: swift google-maps google-places-api google-places

我有两种不同的可能性来按类型过滤机构,但是我真的不知道哪种方法是正确的。基本上,我想在地图上添加多个机构,作为按类型过滤的图钉。我尝试了第一种方法,但是我的代码实际上不适用于 type 字段。

  • 第一种方法是获取 ALL 机构并将其过滤为数组,然后添加到地图
  • 第二种方法使参数以多种形式获取具有不同类型的请求,例如 param (无法真正看到它应该如何工作,如何清除地图等)

我的提取代码(第一种方法):

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中的新机构

0 个答案:

没有答案