簡體   English   中英

Google Maps附近的地方

[英]Google Maps Nearby Places

有人知道我如何在Google地圖pnearby位置搜索中傳遞多種類型的types

var map;
var infowindow;

function initMap() {
  var pyrmont = {lat: -33.867, lng: 151.195};

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

  infowindow = new google.maps.InfoWindow();

  var service = new google.maps.places.PlacesService(map);
  service.nearbySearch({
    location: pyrmont,
    radius: 500,
    types: ['store']
  }, callback);
}

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

function createMarker(place) {
  var placeLoc = place.geometry.location;
  var marker = new google.maps.Marker({
    map: map,
    position: place.geometry.location
  });

  google.maps.event.addListener(marker, 'click', function() {
    infowindow.setContent(place.name);
    infowindow.open(map, this);
  });
}

我嘗試使用以下多種語法編寫類型,但顯示錯誤的位置。

 types: 'bank|bar|airport' types: ['bank','bar'] types: ['bank'|'bar'] 

有誰有更好的解決方案,我將不勝感激。

您缺少必需的屬性query 這為API提供了一個關鍵詞,以便像企業名稱一樣進行搜索。 這些類型提供了其他過濾器,以提供與您的請求最相關的信息。

此方法接受具有以下字段的請求:

  • query(必填)要搜索的文本字符串,例如:“ restaurant”。 地方信息服務將根據此字符串返回候選匹配項,並根據其感知的相關性對結果進行排序。
  • 類型-類型的數組,其中包含Google Places API:支持的位置類型列表中列出的一種或多種支持的類型。 該服務將返回與任何指定類型匹配的結果。

 var map; var infowindow; function initMap() { var timesSquare = { lat: 40.759011, lng: -73.984472 }; map = new google.maps.Map(document.getElementById('map'), { center: timesSquare, zoom: 18 }); infowindow = new google.maps.InfoWindow(); var service = new google.maps.places.PlacesService(map); service.nearbySearch({ location: timesSquare, radius: 50, query: 'new york', types: ['bank'|'bar'] }, callback); } function callback(results, status) { if (status === google.maps.places.PlacesServiceStatus.OK) { console.log(results); for (var i = 0; i < results.length; i++) { createMarker(results[i]); } } } function createMarker(place) { var placeLoc = place.geometry.location; var marker = new google.maps.Marker({ map: map, position: place.geometry.location }); google.maps.event.addListener(marker, 'click', function() { infowindow.setContent(place.name); infowindow.open(map, this); }); } 
 #map { min-width: 100%; height: 400px; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> <script src="https://maps.googleapis.com/maps/api/js?v=3&callback=initMap&libraries=places" async defer> </script> <div id="map"></div> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM