【问题标题】:Google Places iOS: How to provide context to API for relevant local resultsGoogle Places iOS:如何为 API 提供相关本地结果的上下文
【发布时间】:2016-11-09 18:38:09
【问题描述】:

使用Google Places API for iOS,我使用的是Place AutoComplete feature。当我开始输入地名(例如“星巴克”)时,它会为我提供多个国家/地区的星巴克位置,而不是我当地的星巴克。如何将当前位置传递给 API,以便搜索结果从离我最近的位置开始?

【问题讨论】:

    标签: ios swift google-places-api


    【解决方案1】:

    您可以将GMSCoordinateBounds 传递给“对象将结果偏向由纬度和经度边界指定的特定区域”

    他们在site 上有一个示例,展示了如何执行此操作:

    let visibleRegion = self.mapView.projection.visibleRegion()
    let bounds = GMSCoordinateBounds(coordinate: visibleRegion.farLeft, coordinate: visibleRegion.nearRight)
    let filter = GMSAutocompleteFilter()
    filter.type = GMSPlacesAutocompleteTypeFilter.City
    placesClient.autocompleteQuery("Sydney Oper", bounds: bounds, filter: filter, callback: { (results, error: NSError?) -> Void in
        guard error == nil else {
            print("Autocomplete error \(error)")
            return
        }
    
        for result in results! {
            print("Result \(result.attributedFullText) with placeID \(result.placeID)")
        }
    })
    

    此示例显示如何从地图视图中提取此数据,但您也可以手动创建 GMSCoordinateBounds

    希望这会有所帮助。

    【讨论】:

    • 不错。但我不想将结果限制在任何领域。我只想让它首先给我最接近我当前位置的结果。
    • 这似乎不是 Places API 的功能。如果您需要此功能,我建议您提出 2 个单独的位置请求。一种是您将当前位置传递给的一种,另一种是没有位置限制的。然后,您可以根据与当前位置的距离对列表进行排序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    相关资源
    最近更新 更多