本文介绍了谷歌地图多个自定义标记的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
所以我正在努力学习如何制作谷歌地图.我对 javascript 知之甚少,但我想在这里学习.
So I'm trying to learn how to make a google map. I have very little understanding of javascript but am trying to learn here.
我在网上引用了一个代码,我已经了解如何添加位置、标记和信息窗口,但我正在尝试弄清楚如何为每个标记添加多个自定义图标.
I referenced a code online and I got to the point where I sort of understand how to add locations, marker, and a infowindow but I'm trying to figure out how to add multiple custom icons for each marker.
感谢您的帮助.
function initialize() {
//add map, the type of map
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 6,
center: new google.maps.LatLng(37.7749295, -122.4194155),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
//add locations
var locations = [
['San Francisco: Power Outage', 37.7749295, -122.4194155],
['Sausalito', 37.8590937, -122.4852507],
['Sacramento', 38.5815719, -121.4943996],
['Soledad', 36.424687, -121.3263187],
['Shingletown', 40.4923784, -121.8891586]
];
//declare marker call it 'i'
var marker, i;
//declare infowindow
var infowindow = new google.maps.InfoWindow();
//add marker to each locations
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map,
});
//click function to marker, pops up infowindow
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
}
google.maps.event.addDomListener(window, 'load', initialize);
推荐答案
有多种方式,最简单的就是将marker的icon-property设置为你想要作为marker出现的图片的URL.
There are multiple ways, the easiest is to set the icon-property of the marker to a URL of an image you want to appear as marker.
示例:
//modified array with icon-URLs
var locations = [
['San Francisco: Power Outage', 37.7749295, -122.4194155,'http://labs.google.com/ridefinder/images/mm_20_purple.png'],
['Sausalito', 37.8590937, -122.4852507,'http://labs.google.com/ridefinder/images/mm_20_red.png'],
['Sacramento', 38.5815719, -121.4943996,'http://labs.google.com/ridefinder/images/mm_20_green.png'],
['Soledad', 36.424687, -121.3263187,'http://labs.google.com/ridefinder/images/mm_20_blue.png'],
['Shingletown', 40.4923784, -121.8891586,'http://labs.google.com/ridefinder/images/mm_20_yellow.png']
];
//inside the loop
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map,
icon: locations[i][3]
});
这篇关于谷歌地图多个自定义标记的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!