Javascript Google Places API在查询时是否可以返回一个对象而不是一个对象数组?

Javascript Google Places API在查询时是否可以返回一个对象而不是一个对象数组?,javascript,google-maps,google-maps-api-3,google-places-api,Javascript,Google Maps,Google Maps Api 3,Google Places Api,我正在玩GooglePlacesAPI,我想知道是否有可能只返回一个最接近的结果。在下面的例子中,我可以返回半径1公里内的所有健身房,这很好,但是如果我要返回最近的警察局或医院,我只想知道最近的一个有没有办法。似乎API正在返回半径内的所有对象,并且无法更改。我似乎找不到任何突出这个问题的文档,我所做的任何尝试都会返回该区域的所有位置 function GymReport(){ // Gets the latitude and longitude of a location search

我正在玩GooglePlacesAPI,我想知道是否有可能只返回一个最接近的结果。在下面的例子中,我可以返回半径1公里内的所有健身房,这很好,但是如果我要返回最近的警察局或医院,我只想知道最近的一个有没有办法。似乎API正在返回半径内的所有对象,并且无法更改。我似乎找不到任何突出这个问题的文档,我所做的任何尝试都会返回该区域的所有位置

 function GymReport(){

  // Gets the latitude and longitude of a location searched by a user
  $('.search_latitude').val(marker.getPosition().lat());
  $('.search_longitude').val(marker.getPosition().lng());

 var Lat = marker.getPosition().lat();
 console.log(Lat);

 var Long = marker.getPosition().lng();
 console.log(Long);

 var location = {lat: Lat, lng: Long};

   var service = new google.maps.places.PlacesService(map);
   service.nearbySearch({
       location: location,
       radius: 1000,
       type: ['gym']
     }, callback);
    }
回调类

 function callback(results, status) {

  if (status === google.maps.places.PlacesServiceStatus.OK) {
      if(marker)
            marker.setMap(null)
     for (var i = 0; i < results.length; i++) { 
          createMarker(results[i]);<-- This calls the function that will create the markers for the array of results from the API.
        }
  }
}

请注意,您可以按显著性或距离排序搜索附近位置的结果。默认情况下,它按突出顺序排列。您可以在代码中使用rankBy参数按距离排序:

rankBy-指定返回结果时使用的排名方法。默认为突出显示。请注意,当rankBy设置为“距离”时,必须指定位置,但不能指定半径或边界

资料来源:

一旦得到按距离排序的结果,只需从数组中获取最近位置的第一个元素。看看我的示例代码

var映射; var信息窗口; 函数初始化映射{ var pyrmont={lat:-33.867,液化天然气:151.195}; map=new google.maps.Mapdocument.getElementById'map'{ 中心:皮尔蒙特, 缩放:15 }; infowindow=新建google.maps.infowindow; var service=new google.maps.places.PlacesServicemap; 服务,近距离搜索{ 地点:皮尔蒙特, rankBy:google.maps.places.rankBy.DISTANCE, 类型:[“健身房”] },回调; } 函数回调结果、状态{ 如果状态===google.maps.places.PlacesServiceStatus.OK{ //得到第一个结果,它是最接近的结果 createMarkerresults[0]; } } 函数createMarkerplace{ var placeLoc=place.geometry.location; var marker=new google.maps.marker{ 地图:地图, 位置:place.geometry.location }; google.maps.event.addListenermarker“单击”功能{ infowindow.setContentplace.name; infowindow.openmap,这个; }; } 地图{ 身高:100%; } html,正文{ 身高:100%; 保证金:0; 填充:0; }
把它修好了。谢谢你回复我!