gpt4 book ai didi

javascript - Google Maps API v3 添加带有自定义文本的信息窗口的多个标记

转载 作者:数据小太阳 更新时间:2023-10-29 05:04:16 30 4
gpt4 key购买 nike

我正在制作一个关于在挪威遇难的骑自行车者的网站。对于我的项目,我一直在使用 google maps api v3,但我对 javascript 不太熟悉。到目前为止,您可以在这里看到我的结果:http://salamatstudios.com/googlemapstest/

基本上我想要多个标记,每个标记上都有信息窗口。每个信息窗口将包含:姓名年龄),地点,死亡的日期,阅读更多内容(链接到网站本身的页面)。

像这里的这个例子:http://salamatstudios.com/bicycles/

我尝试只使用一个标记和信息窗口,效果很好。当我想在每个标记上添加带有自定义信息窗口的新标记时,我遇到了困难。目前我在第一个链接中看到的不同位置有 3 个标记,但是当我单击标记时没有出现任何信息窗口..

如何绕过它进行编码以便显示信息窗口?我怎样才能在每个信息窗口中都有自定义文本?完成后,我将在 map 上放置大约 30-40 个标记。所有的信息窗口都会有不同类型的信息。

function initialize() {
var mapOptions = {
center: new google.maps.LatLng(65.18303, 20.47852),
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP,


// MAP CONTROLS (START)
mapTypeControl: true,

panControl: true,
panControlOptions: {
position: google.maps.ControlPosition.TOP_RIGHT
},

zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE,
position: google.maps.ControlPosition.LEFT_TOP
},

streetViewControl: true,
streetViewControlOptions: {
position: google.maps.ControlPosition.LEFT_TOP
},
// MAP CONTROLS (END)



};
var map = new google.maps.Map(document.getElementById("map"),
mapOptions);


// -------------- MARKER 1
var marker1 = new google.maps.Marker({
position: new google.maps.LatLng(59.96384, 11.04120),
map: map,
icon: 'img/bike5.png'
});


// MARKER 1'S INFO WINDOW
var infowindow1 = new google.maps.InfoWindow({
content: 'Name<br />Location<br />Date<br /><br /><a href="http://www.db.no" target="_blank">Read more(test link)</a>'
});
// End of infowindow code

// Adding a click event to the marker
google.maps.event.addListener(marker1, 'click', function() {
// Calling the open method of the infoWindow
infowindow1.open(map, marker);
});
// -------- END OF 1st MARKER


// -------------- MARKER 2
var marker2 = new google.maps.Marker({
position: new google.maps.LatLng(60.63040, 8.56102),
map: map,
icon: 'img/bike5.png'
});

// MARKER 2'S INFO WINDOW
var infowindow2 = new google.maps.InfoWindow({
content: 'Name<br />Location<br />Date<br /><br /><a href="http://www.db.no" target="_blank">Read more(test link)</a>'
});
// End of infowindow code

// Adding a click event to the marker
google.maps.event.addListener(marker2, 'click', function() {
// Calling the open method of the infoWindow
infowindow2.open(map, marker);
});
// -------- END OF 2nd MARKER


// -------------- MARKER 3
var marker3 = new google.maps.Marker({
position: new google.maps.LatLng(60.39126, 5.32205),
map: map,
icon: 'img/bike5.png'
});

// MARKER 3'S INFO WINDOW
var infowindow3 = new google.maps.InfoWindow({
content: 'Name<br />Location<br />Date<br /><br /><a href="http://www.db.no" target="_blank">Read more(test link)</a>'
});
// End of infowindow code

// Adding a click event to the marker
google.maps.event.addListener(marker3, 'click', function() {
// Calling the open method of the infoWindow
infowindow3.open(map, marker);
});
// -------- END OF 3rd MARKER


}
google.maps.event.addDomListener(window, 'load', initialize);

如果有人能给我一个线索就太好了。我试过四处搜索,但我真的找不到我的答案。提前致谢! :-)

最佳答案

您需要将信息窗口附加到正确的标记。目前它们都与不存在的“标记”相关联(并且当您单击标记时应该会在 javascript 控制台中导致错误消息)。

在点击监听器中更改:

infowindow1.open(map, marker);

infowindow2.open(map, marker);

infowindow3.open(map, marker);

收件人:

infowindow1.open(map, marker1);

infowindow2.open(map, marker2);

infowindow3.open(map, marker3);

working example

关于javascript - Google Maps API v3 添加带有自定义文本的信息窗口的多个标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16825290/

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