2010-10-07 20 views
1

J'essaie de modifier les icônes de repères KML d'une superposition KML dans un exemple d'application Maps sur laquelle je travaille.Modification des icônes de repères KML en cliquant dans l'API Google Maps V3

est ici l'exemple de code -

function seekml() { 

var myLatlng = new google.maps.LatLng(40.65, -73.95); 
var myOptions = { 
    zoom: 14, 
    mapTypeControl: true, 
    center: myLatlng, 
    mapTypeControlOptions: { 
     style: google.maps.MapTypeControlStyle.DROPDOWN_MENU, 
    position: google.maps.ControlPosition.TOP_RIGHT 
    }, 
    navigationControl: true, 
    navigationControlOptions: { 
     style: google.maps.NavigationControlStyle.SMALL 
    }, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 
url_end = "?nocache=" + (new Date()).valueOf(); //For No KML Caching 
myKML = "http://kmlscribe.googlepages.com/SamplesInMaps.kml" + url_end 

gMap = new google.maps.Map(document.getElementById("map"), myOptions); 
var ctaLayer = new google.maps.KmlLayer(myKML,{suppressInfoWindows: true}); 
ctaLayer.setMap(gMap); 

google.maps.event.addListener(ctaLayer, 'click', function(event) {    
    this.setIcon(gYellowIcon); 
    }); 
} 

gYellowIcon a été défini dans mon code avant -

var gYellowIcon = new google.maps.MarkerImage(
    "image url", 
    new google.maps.Size(31, 31), 
    new google.maps.Point(0, 0), 
    new google.maps.Point(6, 20)); 

Je souhaite modifier les repères de superposition KML, lorsque l'utilisateur clique sur l'un des repères affiché sur la superposition KML. Le code ci-dessus ne fonctionne pas.

+0

J'étais sur le point de demander la même chose ... – Francesco

+0

Salut les gars, avez-vous enfin trouvé une solution à ce problème? Merci –

Répondre

2

Je travaille actuellement exactement la même chose et, dans mon cas, je pourrais éditer directement le fichier KML. Si vous avez accès et peut le modifier, voici ce que je faisais:

1) Juste sous étiquette <document>, coller quelque chose comme ceci:

<Style id="desired_id"> 
    <IconStyle> 
    <Icon> 
     <href>http://www.yourwebsite.com/your_preferred_icon.png</href> 
     <scale>1.0</scale> 
    </Icon>  
    </IconStyle> 
</Style> 

Le paramètre scale est pas pris en charge dans Google Maps au moment. Ici, vous pouvez vérifier tous les éléments pris en charge de KML dans Google Maps:

http://code.google.com/intl/en-EN/apis/kml/documentation/kmlelementsinmaps.html

Et là, vous avez quelques informations sur la compatibilité entre KML et GMaps:

http://code.google.com/intl/en-EN/apis/kml/documentation/mapsSupport.html

2) Une fois que vous Vous avez défini votre style, vous pouvez y faire référence sur chaque élément de repère en y ajoutant ce qui suit:

<styleUrl>#desired_id</styleUrl> 

Maintenant, tous vos repères doivent afficher votre icône personnalisée.

Espérons que ça aide. Désolé, je n'ai pas vu le sur cliquez sur partie. Ce n'est pas tout à fait ce dont vous avez besoin alors. Je vais le laisser au cas où cela aiderait quelqu'un d'autre. Désolé.

+2

Merci, ce fut utile. –