Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 如果实时满足特定条件,如何更改谷歌地图标记图标_Google Maps - Fatal编程技术网

Google maps 如果实时满足特定条件,如何更改谷歌地图标记图标

Google maps 如果实时满足特定条件,如何更改谷歌地图标记图标,google-maps,Google Maps,我想在使用google maps API满足特定条件时更改标记图标。 GreenStatus、OrangeStatus和RedStatus变量是Gif。文件夹。如何实时将图标从GreenStatus.gif更改为RedStatus.gif //Open Markers var GreenStatus = "@ViewBag.GreenStatus"; var OrangeStatus = "@ViewBag.OrangeStatus"; var RedStatus = "@ViewBag.Red

我想在使用google maps API满足特定条件时更改标记图标。 GreenStatus、OrangeStatus和RedStatus变量是Gif。文件夹。如何实时将图标从GreenStatus.gif更改为RedStatus.gif

//Open Markers
var GreenStatus = "@ViewBag.GreenStatus";
var OrangeStatus = "@ViewBag.OrangeStatus";
var RedStatus = "@ViewBag.RedStatus";

//Create marker
var MiamiMarker = new google.maps.Marker
({
    position: Miami,
    map: map,
    icon: GreenStatus
});

//Create function that checks if Miami is online or offline.
    //If MiamiServer = online => icon: GreenStatus
    //If MamiaServer = ofline => icon: RedStatus
解决方案:setIcon()可以工作

我用settimeout测试了它是否可以实时工作,这也可以。
setTimeout(function(){MiamiMarker.setIcon(GreenStatus)},10*1000)

很高兴您能够解决您的问题

然而,我只想分享我所做的。我使用了本机javascript的setInterval()函数

setInterval(function(){
  var e = document.getElementById("statusSelect");
  var selectedStatus = e.options[e.selectedIndex].value;  
  setStatusColor(selectedStatus, marker);  
},10 * 1000); 
我使用下拉菜单更改状态,setInterval()将在下拉菜单中检查所选状态以更新标记的图标

在此进行工作演示:


希望它能帮助你和快乐编码

在标记上调用
.setIcon
。@geocodezip我尝试添加带有悬停函数的.setIcon来测试它,它可以工作。然后我用定时器试了试,看它是否实时变化。然而,这不起作用。这就是我所尝试的:正如您在pastebin中看到的,我使用了一个变量来更改图标。如果我从1-11手动更改Checkstatus,它会更改图标,但仅当我刷新页面时,请在问题本身中提供一个允许重现问题的选项。@MrUpsidedown我添加了我在上面的原始帖子中尝试的内容,我尝试了另一种方法setTimeout(function(){MiamiMarker.setIcon(GreenStatus)},10*1000);它是有效的。它实时更新。谢谢你