【问题标题】:Google Maps Marker Icon Auto Changing谷歌地图标记图标自动更改
【发布时间】:2012-05-08 11:52:27
【问题描述】:

我需要根据自动更新的 DOM 元素的内部内容自动更改 Google Maps marker 图标。

我查看了addListeneraddDomListener 的文档,但都是鼠标悬停和点击等内容。我需要它来检测相关元素的纯 HTML 内容的变化,如果该值满足某些条件,则根据它更改标记的图标。

这是我正在使用的代码:

infowindow=new google.maps.InfoWindow();
for (i=0;i<buildings.length;i++){
    marker=new google.maps.Marker({
        position:new google.maps.LatLng(buildings[i][4],buildings[i][5]),
        map:map,
        shadow:shadow,
        icon:greenIcon,
        title:buildings[i][0]+" \n"+buildings[i][1],
        zIndex:buildings[i][6]
    });
}

我正在考虑添加一个setInterval 与jQuery 一起强制buildings[i][7] 数组值(不包括上面)等于有问题的div 的内容,然后运行一些条件语句来确定它是否符合更改标记图标的正确标准。

但在那之后,我不知道如何让标记根据动态更新的值实际改变。

【问题讨论】:

    标签: google-maps google-maps-api-3 google-maps-markers auto-update


    【解决方案1】:

    要设置与Marker 关联的图标,请尝试Marker.setIcon 函数。它接受一个参数,可以是:

    1. string 包含图标图像文件的相对位置(如您的代码中所示),或者 -
    2. MarkerImage,让您可以更好地控制(锚点、原点、大小等)图标图像的显示方式

    【讨论】:

    • 谢谢。这是我正在寻找的一部分(我也在 stackoverflow.com/questions/1941260/… 找到它)......但是有没有办法检测 DOM 元素的变化(这将触发变化),或者我只是要把它放在setInterval 上?如果没有必要,我宁愿不这样做。
    • 好吧,由于没有任何方法可以通知元素更改,您将不得不:轮询元素(如果您愿意,使用setInterval)或使用数据绑定机制我们讨论了您的另一个问题:stackoverflow.com/q/10355852/1314132.
    • 谢谢肖恩。你的帮助是不可或缺的。 :)
    【解决方案2】:

    来自 google api 文档

      var beachMarker = new google.maps.Marker({
          position: myLatLng,
          map: map,
          icon: image
      });
      map.addOverlay (beachMarker );
    

    【讨论】:

    • 这会在旧标记之上放置一个全新的标记吗?我不想要那个;我想换掉我已有的。
    猜你喜欢
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    相关资源
    最近更新 更多