gpt4 book ai didi

javascript - 带有 Google Places 库的 Google Maps 中不同地点类型的不同图像

转载 作者:行者123 更新时间:2023-11-30 06:40:42 26 4
gpt4 key购买 nike

我是 javascript 的新手,无法弄清楚使用谷歌地图中的地点库为不同类型地点的结果使用不同自定义图标的逻辑。例如 - 这将请求体育场馆和公园

var request = {
location: myLatLng,
radius: 20000,
types: ['stadium','park']
};
infowindow = new google.maps.InfoWindow();
var service = new google.maps.places.PlacesService(map);
service.search(request, callback);

回调函数包括创建标记函数

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

创建标记函数如下所示

var emu = 'EMU_test_icon.png'

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

所以我知道如何分配所有标记以使用 EMU_test_icon 图像,但我如何将“体育场”地点类型的结果定向到我列出的图标 (emu) 但为“公园”的结果创建标记到不同的自定义图标 (image2)?

最佳答案

传递给 createMarker 方法的“place”参数有一个可以提供帮助的“type”属性。请参阅引用资料 here在 PlaceSearchResults 标题下。

您可以将这两个图标存储在 map 中,并根据地点类型查找图标类型。

// store the icons in a map, key'd by type
var iconMap = {'stadium': 'EMU_test_stadium_icon.png', 'park': 'EMU_test_park_icon.png'};

// access types array from PlaceResult object
// search to find the string "stadium" and "park"
// default the type to stadium and check to see if place is a park
// if its a park update the type of icon we select
// in the original call to create a marker, get the icon string by type
function createMarker(place) {

var placeLoc = place.geometry.location,
isStadium = place.types.indexOf("stadium") !== -1,
isPark = place.types.indexOf("park") !== -1,
iconType = "stadium";

if (isPark) {
iconType = "park";
}

new google.maps.Marker({
map: map,
icon: iconMap[iconType],
position: place.geometry.location
});

}

*注意:这在 IE < 9 中不起作用(不向数组原型(prototype)添加 indexOf 函数)

*注意 2:假设您的“ map ”变量在别处声明

关于javascript - 带有 Google Places 库的 Google Maps 中不同地点类型的不同图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11511757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com