我正在通过指定确切位置但不确切的商店名称(如通配符搜索)来制作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不提供通配符搜索,但我希望有解决方法。
提前致谢!
答案 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