0

我有各种谷歌地图标记,它们是在循环中创建的,输出如下:

var marker1=new google.maps.Marker({position:new google.maps.LatLng(coordinates),map:map,title:'example'});google.maps.event.addListener(marker1,'click',function(){infwind(marker1,'<p>some info</p>')});

因为它是用“var”声明的,这不是使它成为一个具有全局范围的变量吗?

我需要访问各种标记变量中的所有信息以用于不同目的,但我无法获得所需的信息。

我对谷歌地图很陌生(如第一天)

当我尝试:

console.log(marker1);

我收到未定义 marker1 的错误。如何访问这些标记?我假设我要么必须做类似 google.maps.someotherstuff 的事情,要么这些变量根本不像我想的那样全局。

4

2 回答 2

0

实际上,var在 Javascript 中为变量添加前缀意味着该变量在包含函数的范围内是局部的。所有未声明的变量都将被视为全局变量。

于 2013-02-08T08:21:55.667 回答
0

您可以在创建标记时指定 ID,然后稍后引用该 ID...

创建标记:

    var location = new google.maps.LatLng(x, y);
    var marker = new google.maps.Marker({
      position: location,
      map: map,
      id: place your id here
    });

markers.push(marker)

那么您可以参考以下 id:

for (var i=0; i < markers.length; i++) {
  if (marker[i].id == '') {
    do something;
}
}
于 2013-02-08T08:37:44.630 回答