我正在使用Google Maps API v3开发一个网站。对于这个问题来说,重要的基本功能性如下:
从JS数组中读取多个点的坐标(工作)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。他们总是一样的。
同样需要注意的是,除了"click"Listener之外,我还添加了"mouseover"one_answers"mouseout"事件,它们适用于每个标记,没有任何问题。
具有所有标记信息的文件是此处,放置标记的地图是此处。正如你所看到的,当点击一些标记时,你会被发送到另一个页面,而其他人什么都不做。示例:最南端的标记有效,最北端的标记无效。
有什么想法吗?
谢谢!
PS:请原谅任何明显的编程问题,这是我第一次处理JS。
它没有文档记录(至少我找不到它),但将标记的optimized
-属性设置为false
为我修复了它。
当optimized
-属性设置为true
(默认设置)时,调用setZIndex()
似乎会更新Marker Image的ZIndex
,但不会更新MouseTarget的ZIndex
(可点击区域,在不同的层中定义)