我正在使用Google Maps API v3开发网站。对此事项重要的基本功能如下:
JS数组标记信息示例:
var photos = [
{
file: "republica87",
title: "Av. República, 87",
yearA: "2013",
yearB: "1909",
desc: "Edifício típico ...",
author: "Paulo Guedes",
from: "Arquivo Municipal de Lisboa | Fotográfico",
link: "...",
coords: "38.74266,-9.146851,-85",
},
/*...*/
];
对于标记,只有coords
字段是相关的,然后将其分为纬度和经度(第三个值对此无关紧要。)
然后,在'for'循环内,创建标记并为每个标记创建一个'click'事件监听器:
/*...*/
var markercam=new Array();
for (var i=1;i<photos.length;i++){
coords=photos[i].coords;
coords=coords.split(",");
lat=coords[0];
lon=coords[1];
rot=coords[2];
/*...*/
markercam[i] = new google.maps.Marker({
position: new google.maps.LatLng(lat,lon),
map: map,
icon: cameraicon,
url: './galeria.html?id='+i,
indice: i,
shape: shapecirc,
});
google.maps.event.addListener(markercam[i], 'click', function() {
window.location.href = this.url;
});
/*...*/
}
/*...*/
但是,似乎只为某些标记添加了监听器。我还没有弄清楚可能导致这种情况的那些标记。作为参考,创建监听器的i
的值为:1,7,9,11,12,13,17,19,22。它们始终相同。
同样重要的是要注意,除了“点击”听众之外,我还添加了“鼠标悬停”和“鼠标悬停”事件,这些事件适用于每个标记而没有任何问题。
包含所有标记信息的文件是 here ,放置标记的地图是 here 。如您所见,当单击某些标记时,您将被发送到其他页面,而其他页面则不会执行任何操作。例如:最南端的标记有效,最北边没有。
有什么想法吗?
谢谢!
PS:请原谅任何明显的编程问题,这是我第一次处理JS。答案 0 :(得分:1)
没有记录(至少我找不到它),但是将标记的optimized
- 属性设置为false
会为我修复它。
似乎setZIndex()
的调用会更新Marker-Image的ZIndex
,而不是MouseTarget的ZIndex
(可点击区域,它在不同的图层中定义) ),当optimized
- 属性设置为true
(默认设置)