【问题标题】:Google Places Javascript API get the response statusGoogle Places Javascript API 获取响应状态
【发布时间】:2016-08-04 17:04:45
【问题描述】:

我已经看到了在使用 JSON 或 XML 版本的 Google Places API 响应时获取 API 状态的方法。主要是示例显示尝试显示地图:

new google.maps.places.PlacesService(map);
service = new google.maps.places.PlacesService(map);
service.nearbySearch(request, callback);

function callback(results, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    for (var i = 0; i < results.length; i++) {
      var place = results[i];
      createMarker(results[i]);
    }
  }
}

但要在 javascript 中使用 Google 放置自动完成字段,请使用 js 请求 url:

https://maps.googleapis.com/maps/api/js?key=MY_API_KEY;libraries=places&amp;callback=initAutocomplete

然后创建自动完成对象并调用getPlace():

var autoComplete = new google.maps.places.Autocomplete(<html input element>);
autoComplete.getPlace();

但是,我没有看到任何嵌入到以下 javascript 对象中的状态选项:

autoComplete.getPlace();

我搜索了 Google Places Javascript API 并且提到了状态

PlacesServiceStatus 响应对象包含请求的状态,并且可能包含调试信息,以帮助您跟踪位置详细信息请求失败的原因。可能的状态值为:

错误:联系 Google 服务器时出现问题。

INVALID_REQUEST:此请求无效。

OK:响应包含有效结果。

OVER_QUERY_LIMIT:网页已超出其请求配额。

NOT_FOUND 在 Places 数据库中找不到引用的位置。

REQUEST_DENIED:网页不允许使用 PlacesService。

UNKNOWN_ERROR:由于服务器错误,无法处理 PlacesService 请求。如果您再试一次,请求可能会成功。

ZERO_RESULTS:找不到此请求的结果。

我真的很想在返回任何这些状态的情况下进行错误处理。这是使用 Javascript API 的限制吗?

【问题讨论】:

  • 好问题。差不多 4 年后,这在他们的 API 文档中仍然相关且未解决。我使用var place = this.getPlace(); if (place) { ... } ...但不清楚这是否正确处理错误。

标签: javascript google-places-api


【解决方案1】:

这可能不太优雅,但到目前为止还没有找到更好的答案,我目前正在使用这个:

if (google.maps.places.PlacesServiceStatus.OK === "OK") {

        // my code here

}

【讨论】:

    猜你喜欢
    • 2013-07-15
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 2020-05-11
    相关资源
    最近更新 更多