0

我正在寻找一种通过指定确切位置但指定确切商店名称(如通配符搜索)来执行 Google Maps API V3“nearbySearch”的方法。

例如,如果请求是针对“旧金山”中的“星巴克”,它将返回所有名为“星巴克”的地点,无论该地点的标题中是否包含更多单词,例如,结果将包含“星巴克咖啡”、“星巴克史密斯街” ”或简称“星巴克”。目前看起来它只找到相同的匹配项,“星巴克”。

代码更多信息在这里):

var map;
var service;
var infowindow;

function initialize() {

  // Specify lat/lng of search location
  var SanFran = new google.maps.LatLng(37.777119,-122.41964);

  // Create new map object
  map = new google.maps.Map(document.getElementById('map'), {
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    center: SanFran,
    zoom: 15
  });

  // Create request parametres
  var request = {
    location: SanFran
    , radius: '500',
    , name: "Starbucks"
  };

  // Call the nearby search using the parametres
  service = new google.maps.places.PlacesService(map);
  service.nearbySearch(request, callback);

}

// Asynchronous marker creation at returned locations
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]);
    }
  }
}

我做了一些阅读,虽然看起来 API3 不提供通配符搜索,但我希望有解决方法。

提前致谢!

4

1 回答 1

2

对不起,答案真的很简单。我应该一直使用 textSearch 而不是 nearSearch:

...

// Create request parametres
var request = {
  location: SanFran
  , radius: '500',
  , query: "Starbucks"
};

// Call the nearby search using the parametres
service = new google.maps.places.PlacesService(map);
service.textSearch(request, callback);

...

更多信息在这里https://developers.google.com/maps/documentation/javascript/places#TextSearchRequests

于 2013-03-25T22:42:36.577 回答