Google地图标记图标自动更改
问题描述:
我需要根据自动更新的DOM元素的内部内容自动更改Google地图图标。Google地图标记图标自动更改
我看过addListener
和addDomListener
的文档,但它都是鼠标悬停和点击。我需要它来检测有问题的元素的纯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]
});
}
我正在考虑在与jQuery一起添加setInterval
迫使buildings[i][7]
数组值(上述不包括)至等于有问题的div的内容,然后运行一些条件语句来确定它是否符合更改标记图标的正确标准。
但之后,我迷失了关于如何根据动态更新的值让标记实际更改。
答
要设置与Marker
关联的图标,试用Marker.setIcon
功能。它接受一个参数,它可以是:
- 一个
string
包含图标图像文件的相对位置(在你的代码),OR - - 一个MarkerImage,它给你更多的控制权(锚,原点,尺寸等)在图标图像的显示方式
答
从谷歌API文档
var beachMarker = new google.maps.Marker({
position: myLatLng,
map: map,
icon: image
});
map.addOverlay (beachMarker);
+0
这是否会在旧的标记之上放置一个全新的标记?我不想那样;我想换掉我已经有的那个。 – InterfaceGuy 2012-04-27 18:53:09
谢谢。这是我正在寻找的一部分(我也发现它在http://stackoverflow.com/questions/1941260/google-maps-api-v3-how-do-i-dynamically-change-the-marker-icon )...但是有没有一种方法来检测DOM元素的变化(这会触发变化),还是我不得不把它放在'setInterval'上?如果我不必这样做,我宁愿不这样做。 – InterfaceGuy 2012-05-01 19:20:07
好吧,由于没有任何方法可以通知元素更改,所以您必须:轮询元素(如果您喜欢,请使用'setInterval')或使用我们在其他问题中讨论的数据绑定机制: http://stackoverflow.com/q/10355852/1314132。 – 2012-05-01 19:38:01
谢谢肖恩。你的帮助是不可或缺的。 :) – InterfaceGuy 2012-05-02 16:20:56