Bonjour à tous,
Je met en place une délimitation de zones dans une carte Google Maps grâce à plusieurs fichiers KML. Je rencontre deux problème que je n'arrive pas à résoudre et pour lesquels je n'ai pas trouvé d'informations pertinentes.
Zoom
Tout d'abord, le niveau de zoom déclaré dans dans la variable MyOptions de la fonction initialize() n'est pas pris en compte lorsque j'affiche les fichiers KML. Par contre, dés que je commente les lignes qui permettent d'afficher les fichiers, le zoom fonctionne correctement. Je précise qu'il s'agit de fichiers kml utilisés en local (les fichiers sont dans un répertoire sur l'hébergement du site en question).
Légende
J'ai aussi une petite fonction qui permet d'afficher le nom de chaque zone dans un div (affichage du contenu de la balise <Placemark> => <name> du fichier KML). Tout d'abord, la fonction est incapable d'afficher la balise description sans que je comprenne pour quelle raison... et ensuite le contenu de la balise name s'affiche, mais je n'arrive pas le mettre à jour. C'est à dire que lorsque je change le contenu de cette balise, dans la carte, c'est toujours l'ancienne valeur qui est affichée...
J'espère que mes explications sont claires.
J'ai intégré tout ceci dans un Drupal, j'ai déjà désactivé l'utilisation du cache dans Drupal, je l'ai aussi vidé, sans obtenir de différence à l'affichage...
Est-ce que vous auriez une idée du problème ??
Je vous remercie par avance.
Voici l'intégralité du fichier javascript contenant les fonctions d'affichage de la carte et des fichiers KML... peut être ai-je oublié une option ??
Si je remplaceCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 function initialize() { var latlng = new google.maps.LatLng(45.286482,3.383789); var myOptions = { zoom: 8, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP, //Pour affichage en mode plan //mapTypeId: google.maps.MapTypeId.SATELLITE, //Pour affichage en mode satellite disableDefaultUI: false, draggable: true, keyboardShortcuts: true, mapTypeControl: true, scaleControl: true, scrollwheel: true }; var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); // Set KML layers var kmlLayers = new Array(); var text = new Array(); for (var i = 1; i < 7; i += 1) { // kmlFilePath public urls to KML files var kmlFilePath = 'http://www.site-en-construction.com/google.maps/' + 'kml/0' + i + '.kml'; kmlLayers[i] = new google.maps.KmlLayer(kmlFilePath, {suppressInfoWindows: true}); kmlLayers[i].setMap(map); google.maps.event.addListener(kmlLayers[i], 'click', function(kmlEvent) { text[i] = kmlEvent.featureData.name; showInDiv(text[i]); }); } } function showInDiv(letexte) { var sidediv = document.getElementById('contentWindow'); sidediv.innerHTML = letexte; }
parCode:text[i] = kmlEvent.featureData.name;
Le div affiche undefined à la place de la valeur de la balise description... c'est pourtant un code tiré d'un exemple de Google. Mais ce problème n'est pas important pour le moment sachant que je peux afficher l'autre balise.Code:text[i] = kmlEvent.featureData.description;