nearbySearch指定名称,如wildcard

时间:2013-03-24 22:30:14

标签: google-maps google-maps-api-3

我正在通过指定确切位置但确切的商店名称(如通配符搜索)来制作Google Maps API V3“nearbySearch”。

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

代码more info here):

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不提供通配符搜索,但我希望有解决方法。

提前致谢!

1 个答案:

答案 0 :(得分: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