设置谷歌地图标记动画

8

我正在尝试将BOUNCE动画设置为特定标记,但每当我调用marker.setAnimation(google.maps.Animation.BOUNCE)方法时,控制台会显示“无法读取未定义的属性'BOUNCE'”,这意味着标记没有正确定义吗?但是,如果我使用marker.setTitle('Bouncing'),标题确实会更改。我做错了什么吗?下面是代码:

   <script type="text/javascript">
        function addMarker(lat,lng,img,title,bounce)
        {
         var myLatLng = new google.maps.LatLng(lat, lng);

        var marker = new google.maps.Marker({
                position: myLatLng,
                map: map,
                icon: img,
            title: title,
            zIndex: 1
            });

            if(bounce=='set'){marker.setAnimation(google.maps.Animation.BOUNCE);
            marker.setTitle('Bouncing');};

        }
    </script>

PHP脚本

    for($i=0;$i<count($losDatos);$i++)
    {

    $utc=new DateTime($losDatos[$i]['fechaUtc']);
    $utc->modify('-'.horarioVerano().' hours');
    echo $utc->format("Y-m-d H:i:s");
    if($losDatos[$i]['camion']==$camion)
    {
    $script.="addMarker(".$losDatos[$i]['latitud'].",".$losDatos[$i]['longitud'].",".$losDatos[$i]['img'].",".$losDatos[$i]['nombre'].",'set');";
    }else
    {
       $script.="addMarker(".$losDatos[$i]['latitud'].",".$losDatos[$i]['longitud'].",".$losDatos[$i]['img'].",".$losDatos[$i]['nombre'].");";
    }

    }

echo $script;

你的代码应该能够正常运行。看一下这个 jsfiddle:http://jsfiddle.net/kjy112/rD8U6/ - KJYe.Name
即使在控制台中编写整个过程以便在执行后进行,仍会返回相同的错误。 - Gustavo
这就是整个代码!:S 我只是根据一些 SQL 行的结果进行调用。 - Gustavo
你看到地图上的标记了吗? - KJYe.Name
你的脚本标签格式不正确。应该是:<script type="text/javascript">。这可能会有所帮助。 - Richard Marskell - Drackir
显示剩余6条评论
3个回答

12

尝试:

marker.setAnimation(google.maps.Animation.BOUNCE)

兄弟,这个方法不起作用,标记显示错误.....??你能详细说明一下吗?拜托了。 - Ravind Maurya

-1

你在代码中指定的方式是正确的。

{
  marker.setAnimation(google.maps.Animation.BOUNCE);
}

你需要检查的是标记是否真正引用了地图上的标记对象。

或者

您可以尝试通过标记选项设置动画。

var markerOptions = {animation:google.maps.Animation.BOUNCE}

或者尝试在不使用if(condition)的情况下设置动画,看看是否会反弹。

另外,请在您的if语句中以这种方式检查相等性。

if(bounce==="set"){ /*animate marker*/}

-5

setAnimation参数应该是一个字符串,可以是"BOUNCE"或者"DROP"。

marker.setAnimation("BOUNCE");

或者

marker.setAnimation("DROP");

其中 marker 是一个 Google 地图标记对象:


你必须传递Google提供的枚举,而不仅仅是文本。 - Ε Г И І И О

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接