javascript - 如何从阵列中选择特定标记?

标签 javascript google-maps-api-3 google-maps-markers

我在这里发现了一些接近我的问题的东西:Storing Google Map Markers and Selecting a specific marker from it

但是,我已经认真研究了那里的代码,但我只是不太清楚如何将其实现到我的代码中。这是我所拥有的:

var t = {
    name:"sdf",
    lat:123,
    lng:-123,
    address:"asd",
  link:"http://www.google.com"
  };

  a[0] = t;

  var t = {
    name:"sdf",
    lat:123,
    lng:-123,
    address:"asd",
    link:"http://www.google.com"
  };

  a[1] = t;

for (var i = 0; i < a.length; i++) {
        var latlng = new google.maps.LatLng(a[i].lat,a[i].lng);
        map.addMarker(createMarker(a[i].name,latlng,a[i].address,a[i].link));
     };

此代码位于初始化函数内。

我将此代码放置在 dom 监听器之后的函数外部进行初始化:

    google.maps.event.addListener(marker[[a[0]], "click",function(){
      alert("worked!")
    });

事实是,我需要能够选择一个特定的标记来执行与其他标记不同的操作。

我什至尝试给一个附加变量提供与[0]相同的值,就像他们在链接中所做的那样。但是将该变量放在标记括号中也不起作用。

以下是创建标记的代码:

function createMarker(name,latlng,address,link) {
    var marker = new google.maps.Marker({position: latlng, map: map});
    google.maps.event.addListener(marker, "click", function() {
      if (infowindow) infowindow.close();
      infowindow = new google.maps.InfoWindow({content:"<div class='buildingInfo'>" + name + "<br>" + "<a href='" + link + "'>" + address +"</a>" + "</div>"});
      infowindow.open(map, marker);
    });
    return marker;

  };

最佳答案

尽管我更愿意直接选择标记,但我选择了以下代码:

function createMarker(name,latlng,address,link) {
    var marker = new google.maps.Marker({position: latlng, map: map});
    google.maps.event.addListener(marker, "click", function() {
      if(name == "name"){
        alert("worked!");
      }
      if (infowindow) infowindow.close();
      infowindow = new google.maps.InfoWindow({content:"<div class='buildingInfo'>" + name + "<br>" + "<a href='" + link + "'>" + address +"</a>" + "</div>"});
      infowindow.open(map, marker);
    });
    return marker;

  };

我认为由于标记已经有一个监听器,因此向其添加另一个监听器可能不会起作用。

关于javascript - 如何从阵列中选择特定标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29436788/

相关文章:

javascript - 如何在可以更改的值上触发函数?

javascript - 使用 Capybara 和 Minitest 测试 JavaScript

javascript - 相当于 gmaps api 3 中的 getBoundsZoomLevel()

android - 如何使用谷歌地图 API 跟踪实时位置?

google-maps-api-3 - 谷歌地图 V3 : Only some markers are displayed

javascript - 网络音频中的多个实例

javascript - 滑动菜单一下子全部出来

google-maps-api-3 - 更改缩放控件的颜色 Google map 3

javascript - 无法删除 Google map 标记

java - 除了标题和代码 fragment 之外,如何在标记中包含 ID