findPlaceFromQuery返回错误的`PlacesServiceStatus`

时间:2018-06-12 03:51:58

标签: javascript google-places-api

我从https://developers.google.com/maps/documentation/javascript/places#find_place_from_query跟踪了findPlaceFromQuery()方法的代码示例。

我有查询部分的确切代码。但是,返回的PlacesServiceStatus始终不正常。我尝试更改query对象中的request值,但结果始终相同。

知道为什么会这样吗?

我粘贴下面的相关代码段以便于参考。它与示例代码大致相同。我刚刚在最后添加了else子句:

var map;
var service;
var infowindow;

function initMap() {
  var mapCenter = new google.maps.LatLng(-33.8617374,151.2021291);

  map = new google.maps.Map(document.getElementById('map'), {
    center: mapCenter,
    zoom: 15
  });

  var request = {
    query: 'Museum of Contemporary Art Australia',
    fields: ['photos', 'formatted_address', 'name', 'rating', 'opening_hours', 'geometry'],

  service = new google.maps.places.PlacesService(map);
  service.findPlaceFromQuery(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]);
    }
  }
  else{
      alert("status bad");
  }
}

1 个答案:

答案 0 :(得分:0)

要使此代码正常工作,人们需要注意几个先决条件。为了使places API请求起作用,必须执行以下操作:

  1. 必须从调用方法中显式添加地方信息库,例如&libraries=places。这是因为places API不是maps API的标准配置。

<script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY& libraries=places&callback=YOUR_CALLBACK_METHOD"></script>

  1. 所使用的API密钥必须具有来自Google控制台的正确位置凭据。 link演示了如何完成此操作。