Google Maps - setIcon code marqueur de disparaître

Je suis en train de modifier dynamiquement un marqueur de l'icône lorsque le marqueur est cliqué. J'ai plusieurs marqueurs sur la carte (recueillie par une requête de base de données), et c'est le code que j'utilise actuellement - toutes les choses assez standard:

function initialize() {
        var myOptions = {
          center: new google.maps.LatLng(-30,135),
          zoom: 4,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map = new google.maps.Map(document.getElementById("map"),
            myOptions);
        var bikeicon = "images/bike.png";


    <?php
    $result=mysql_query("select * from sites");
    while($row=mysql_fetch_assoc($result)){
        ?>
        marker = new google.maps.Marker({
        position: new google.maps.LatLng(<?php echo $row['Latitude']; ?>, <?php echo $row['Longitude']; ?>),
        map: map, icon: bikeicon});

        infoWindow = new google.maps.InfoWindow();

        marker.html="<?php echo stripslashes($row['ShortDesc']); ?>";

        google.maps.event.addListener(marker, 'click', function(){
            //show infowindow
            infoWindow.setContent(this.html);
            infoWindow.open(map, this);
            //change icon color
            var icon = new google.maps.MarkerImage({ url:"http://jovansfreelance.com/bikestats/images/bike_red.png"});
                this.setIcon(icon);     //why doesn't this work?

        })
        <?php
    }
    ?>

}

L'infoWindow code fonctionne très bien, mais le seticon code fait juste le marqueur de disparaître et de ne pas montrer la nouvelle icône de marque. La nouvelle icône de l'URL est valide, comme vous pouvez le voir par l'ouvrir dans votre navigateur.

Si quelqu'un peut me dire pourquoi ce code ne fonctionne pas?

OriginalL'auteur jovan | 2013-01-23