我正在尝试在地图上显示地图的景点。标记从数据库中提取并放在地图上。但是,我想在点击右侧标记后显示一个网站(放入数据库)。我得到了打开不同页面的代码,但是,它只显示数据库表中最后一行的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');
});
}
});
}
我已经尝试了几个选项无济于事,如果我需要提供更多信息,请说出来,我陷入僵局
答案 0 :(得分:0)
你应该保存&#34;身份&#34;每个标记的值。您可以在构建标记时将自定义数据添加到标记:
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');
});