【问题标题】:Google Places API vs. Google Geocode APIGoogle Places API 与 Google Geocode API
【发布时间】:2014-03-18 23:36:01
【问题描述】:
我已经使用自动完成功能和 Google Geocoding Api 实现了 Google Places API。问题是结果似乎无法正常工作。
有时从自动完成列表中选择的一些结果根本不进行地理编码,我得到的只是状态 ZERO_RESULTS。
我知道 Google 自动完成功能也使用“地点”这一事实可能存在一些问题,而 Google 地理编码仅使用邮政编码,但我如何才能限制自动完成功能只为我提供邮政编码结果。
【问题讨论】:
标签:
google-maps
google-places-api
google-geocoder
【解决方案1】:
地点类型
您可以通过传递 types 参数来限制地方自动完成请求的结果为特定类型。该参数指定类型或类型集合,如下面支持的类型中所列。如果未指定任何内容,则返回所有类型。通常只允许使用一种类型。例外情况是您可以安全地混合地理编码和机构类型,但请注意,这与不指定类型具有相同的效果。支持的类型有:
geocode
指示 Place Autocomplete 服务仅返回地理编码(地址)结果。通常,您使用此请求来消除指定位置可能不确定的结果的歧义。
机构指示 Place Autocomplete 服务仅返回业务结果。
(regions) 类型集合指示 Places 服务返回与以下类型匹配的任何结果:
地点
次区域
邮政编码
国家
行政区域1
行政区域2
(cities) 类型集合指示 Places 服务返回与 locality 或 Administrative_area3 匹配的结果。
希望这会有所帮助
https://developers.google.com/places/documentation/autocomplete
【解决方案2】:
没有办法通过自动完成来实现它。
当您输入自动完成时,API 首先会请求预测,而不是详细信息。
这意味着当您看到预测时,仍不清楚该地点是否有可用的详细信息。
在某些情况下无法找到特定地点。我敢肯定,谷歌什么时候可以排除他们根本不会返回的丢失的地方。
我看到的唯一解决方法是在应用预测之前通过同时请求预测和详细信息来自行创建自动完成。但请注意:每次用户输入输入时,这将计为 6 个请求(假设将返回 5 个预测)