gpt4 book ai didi

javascript - 谷歌地图点击标记打开数据库中的 URL

转载 作者:行者123 更新时间:2023-11-30 22:24:16 25 4
gpt4 key购买 nike

我正在尝试让 map 在 map 上显示景点。这些标记是从数据库中提取并放在 map 上的。但是,我想在单击正确的标记后显示一个网站(放入数据库)。我得到了打开不同页面的代码,但是,它只显示数据库表中最后一行的 ID/URL。我怎样才能让它显示每个位置的 URL 或 ID,而不仅仅是最后一个位置?

我现在的代码:

    function load() {
var map = new google.maps.Map(document.getElementById("map"), {
//defining the location
center: new google.maps.LatLng(45.466963, 9.188733),
//defining default map zoom
zoom: 14,
//disable scroll wheel function
scrollwheel: false,
//disable navigation control
navigationControl: false,
//disable map type control
mapTypeControl: false,
//disable scaling function
scaleControl: false,
//allowing the map to be dragable
draggable: true,
//disable user interface e.g. + and - buttons for zoom control
disableDefaultUI: true

});
//creates window that contains defined information
infoWindow = new google.maps.InfoWindow;


//pulling the data from the file
downloadUrl("phpsqlajax_genxml2.php", function(data) {

//defining variables using data pulled over


var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 1; i < markers.length; i++) {
var name = markers[i].getAttribute("name");
var address = markers[i].getAttribute("address");
var type = markers[i].getAttribute("type");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var html = "<b>" + name + "</b> <br/>" + address;
var idd = markers[i].getAttribute("identity");
var icon = customIcons[type] || {};
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon
});
//when marker is clicked, it opens the URL of the location
bindInfoWindow(marker, map, infoWindow, html);
google.maps.event.addListener(marker, 'click', function () {
window.open(idd, '_blank');
});
}
});
}

我尝试了多种选择都无济于事,如果我需要提供更多信息,请尽管说,我陷入僵局

最佳答案

您应该为每个标记保存“身份”值。您可以在构建标记时将自定义数据添加到标记:

var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon,
idd:idd
});

那么监听器应该使用这个新属性:

google.maps.event.addListener(marker, 'click', function () {
window.open(this.idd, '_blank');
});

关于javascript - 谷歌地图点击标记打开数据库中的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35752380/

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