Javascript 谷歌地图点击标记打开数据库中的URL
我想用地图在地图上显示景点。这些标记从数据库中提取出来并放在地图上。但是,我想在单击右标记后显示一个网站(放入数据库)。我得到了打开另一个页面的代码,但是,它只显示数据库表中最后一行的ID/URL。如何使其显示每个位置的URL或ID,而不仅仅是最后一个位置 我现在拥有的代码:Javascript 谷歌地图点击标记打开数据库中的URL,javascript,mysql,google-maps,google-maps-api-3,Javascript,Mysql,Google Maps,Google Maps Api 3,我想用地图在地图上显示景点。这些标记从数据库中提取出来并放在地图上。但是,我想在单击右标记后显示一个网站(放入数据库)。我得到了打开另一个页面的代码,但是,它只显示数据库表中最后一行的ID/URL。如何使其显示每个位置的URL或ID,而不仅仅是最后一个位置 我现在拥有的代码: function load() { var map = new google.maps.Map(document.getElementById("map"), { //defining the
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 map=new google.maps.map(document.getElementById(“map”){
//定义位置
中心:新google.maps.LatLng(45.466963,9.188733),
//定义默认地图缩放
缩放:14,
//禁用滚轮功能
滚轮:错误,
//禁用导航控制
导航控制:错误,
//禁用映射类型控件
mapTypeControl:false,
//禁用缩放功能
scaleControl:false,
//允许绘制地图
真的,
//禁用用户界面,例如缩放控制的+和-按钮
disableDefaultUI:true
});
//创建包含已定义信息的窗口
infoWindow=新建google.maps.infoWindow;
//从文件中提取数据
下载URL(“phpsqlajax_genxml2.php”,函数(数据){
//使用拉过来的数据定义变量
var xml=data.responseXML;
var markers=xml.documentElement.getElementsByTagName(“标记”);
对于(变量i=1;i“+地址;
var idd=markers[i].getAttribute(“标识”);
var icon=customIcons[type]| |{};
var marker=new google.maps.marker({
地图:地图,
位置:点,,
图标:icon.icon
});
//单击标记时,会打开位置的URL
bindInfoWindow(标记、地图、infoWindow、html);
google.maps.event.addListener(标记,'click',函数(){
窗口。打开(idd,“U空白”);
});
}
});
}
我尝试了几个选项,但都没有效果,如果我需要提供更多信息,请说出来,我陷入了僵局您应该保存每个标记的“标识”值。构建标记时,可以将自定义数据添加到标记中:
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');
});
您应该保存每个标记的“标识”值。构建标记时,可以将自定义数据添加到标记中:
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');
});