谷歌地点Javascript API获取响应状态

3

我看到了在使用Google Places API的JSON或XML版本响应时获取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响应对象包含请求的状态,并可能包含调试信息,以帮助您跟踪为何Place Details请求失败。可能的状态值包括:
ERROR:联系Google服务器时出现问题。
INVALID_REQUEST:请求无效。
OK:响应包含有效结果。
OVER_QUERY_LIMIT:网页超过了其请求配额。
NOT_FOUND:在Places数据库中未找到引用位置。
REQUEST_DENIED:不允许网页使用PlacesService。
UNKNOWN_ERROR:由于服务器错误,无法处理PlacesService请求。如果再试一次,则请求可能成功。
ZERO_RESULTS:未找到此请求的结果。
如果返回任何这些状态之一,我真的很想在页面上进行错误处理。这是使用Javascript API的限制吗?

1
很好的问题。将近4年过去了,这在他们的API文档中仍然是相关且未解决的问题。我使用 var place = this.getPlace(); if (place) { ... } ... 但不清楚它是否正确处理错误。 - designosis
1个回答

1

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

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

        // my code here

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接