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
Vous devez vous connecter pour publier un commentaire.
MarkerImage attend l'url comme premier paramètre, pas un objet qui contient l'url.
Mais vous devez éviter l'utilisation de MarkerImage, c'est obsolète.
Vous pouvez également passer directement l'url de setIcon.
méthodes possibles(tous donnent le même résultat):
OriginalL'auteur Dr.Molle