我正在尝试使用不同类型的菜肴的不同标记图标,用于在Google地方附近搜索产生的餐馆。
作为一个例子,如果一家餐馆是比萨店,它应该显示一个定制的比萨店图标(我已经存储在当地)或者如果一个餐馆是汉堡店,它应该显示一个汉堡图标而不是默认的餐馆图标。
据我搜索,只有可能使用自定义图标的地方类型(例如“餐厅”,“图书馆”,“停车”......)我找不到办法得到餐馆类型的子类型。有办法解决这个问题吗?
以下是真正绘制标记的搜索和回调函数的示例代码:
var MARKER_PATH =
"https://developers.google.com/maps/documentation/javascript/images/marker_green";
unction search() {
var search = {
bounds: map.getBounds(),
types: ["restaurant"]
};
places.nearbySearch(search, callback);
}
function callback(results, status) {
if (status === google.maps.places.PlacesServiceStatus.OK) {
document.getElementById("lat").value = results[0].geometry.location.lat();
document.getElementById("lng").value = results[0].geometry.location.lng();
// Create a marker for each restaurant found, and
// assign a letter of the alphabetic to each marker icon.
for (var i = 0; i < results.length; i++) {
var markerLetter = String.fromCharCode("A".charCodeAt(0) + i % 26);
var markerIcon = MARKER_PATH + markerLetter + ".png";
// Use marker animation to drop the icons incrementally on the map.
markers[i] = new google.maps.Marker({
position: results[i].geometry.location,
animation: google.maps.Animation.DROP,
icon: markerIcon
});
// If the user clicks a restaurant marker, show the details of that restaurant
// in an info window.
markers[i].placeResult = results[i];
google.maps.event.addListener(markers[i], "click", showInfoWindow);
setTimeout(dropMarker(i), i * 100);
addResult(results[i], i);
}
}
}
我的想法是通过使用生成结果的关键字属性获取菜肴类型,例如这样(例如,只有两种美食类型):
if (results[i].keyword === "pizzaria") {
markerIcon = "img/icons/pizzaria.png";
} else if (results[i].keyword === "burger") {
markerIcon = "img/icons/fastfood.png";
}
不幸的是,这不起作用,我想知道是否有办法解决它..
答案 0 :(得分:0)
不,你不能试图找到一些&#34;比萨店&#34;由Google官方文档的this条款指定。
但是,您可以查看餐馆的types
(如关键字)并尝试找到&#34; pizzeria&#34;在他们:
if (results[i].name.indexOf ("pizzeria") || results[i].name.indexOf ("pizza hut") /*...*/) {
markerIcon = "img/icons/pizzaria.png";
} else if (results[i].name.indexOf ("burger")) {
markerIcon = "img/icons/fastfood.png";
}
如果您有疑问,请告诉我。
祝你好运。
斯芬克斯
答案 1 :(得分:0)
您需要有关每个地方的详细信息,而不是现有信息。
Places API会在其types
字段中显示所有带有“restaurant”的餐馆,您需要更多更详细的类型,例如“hamburger_restaurant”或“italian_restaurant”,因为它们会显示在Google地图中({{ 3}})。这是您可以订阅的功能请求:
example:详细/主要地点类型(如Google地图所示)