4

我正在迁移到新的地方 SDK 4.0

旧的功能是:

findAutocompletePredictions(fromQuery: query,
                            bounds: bounds,
                            boundsMode: .bias,
                            filter: filter,
                            sessionToken: token) { (prediction, error) in
                                        callback(prediction, error)
}

根据文档的新功能是

findAutocompletePredictions(fromQuery: query,
                            filter: filter,
                            sessionToken: token) { (prediction, error) in
                                        callback(prediction, error)
}

我看到现在在GMSAutocompleteFilter过滤器上设置了边界偏差

这有一个locationBias我设置的属性,some它需要一个参数<GMSPlaceLocationBias>

我遇到的问题是没有关于这里提供什么的信息......GMSPlaceLocationBias是一个协议,我不知道我是什么意思使用对象明智来提供旧的边界数据。

遵守协议给了我locationBiasURLQueryItem填充的乐趣,没有关于这个函数应该做什么的进一步文档

所以我卡住了,无法升级,因为似乎没有明确的前进方向。

有人有想法么?文档在这里:https ://developers.google.com/places/ios-sdk/reference/interface_g_m_s_places_client#ab60773feec0e68751c5a7f1066b9d252 )

我尝试构建过滤器是:

    let filter = GMSAutocompleteFilter()
    if case .location(let location) = _locationController.locationStatus {
        filter.locationBias = .some(location)
    }

但显然我的自定义位置模型对象没有向 GMSPlaceLocationBias 确认,并且是一个结构,因此不能使用并且错误

4

1 回答 1

6

我也完全迷失了这一点,但只是在这里的一个指南中找到了一个例子。

简而言之,实现如下所示:

let filter = GMSAutocompleteFilter()
filter.locationBias = GMSPlaceRectangularLocationOption(bounds.northEast, bounds.southWest)

在这里,我使用之前在 3.x 中使用的相同边界(在我的情况下,来自当前显示的地图)来获取东北和西南坐标,但您可以根据您尝试的位置生成自己的坐标偏差结果。

我希望他们刚刚在他们的文档中表明这是这样做的预期方式。

于 2020-10-15T19:10:14.120 回答