Bonjour,
Des valeurs numériques qui ne devraient pas s'afficher apparaissent sur les cartes : voir exemple.
J'ai également mis une capture d'écran en pièce jointe.
Merci
Bonjour,
Des valeurs numériques qui ne devraient pas s'afficher apparaissent sur les cartes : voir exemple.
J'ai également mis une capture d'écran en pièce jointe.
Merci
Bonjour,
Les numéros sont présent sous explorer 9, opéra 11.11 et chrome 12, mais pas sous firefox 4.01 le tout avec windows 7 64.
Il y a eu, je crois, un problème similaires il y a quelques semaines et la solution était un paramètre skip attribute à ajouter.
J'ai fait une recherche rapide sans retrouver le post, désolé.
Le kml contient l'information:
Le code html de la page http://www.loiret.com/les-travaux-ro...htm?RH=ACCUEIL contient beaucoup d'espaces ...<Placemark>
<name><![CDATA[39]]></name>
<Snippet maxLines="2"></Snippet>
<description><![CDATA[D32 PR27+0 au PR27+600<br />Courtenay<br />Inspection du pont de l'A19<br />Circulation alternée<br />27/06/2011 au 08/07/2011<br /><a href="#" onclick="viewer.getMap().setCenterAtLonLat(3.03481572369671 , 48.040016247893, 14); return false;">Zoom vers ce lieu</a>
]]></description>
<styleUrl>#INFO_POINTS</styleUrl>
Il est plus facile de tester avec cette url: http://www.loiret.com/html/cg45/api_...tiers_gen.html
Bonjour,
Le style "INFO_POINTS" contient la balise
<LabelStyle>
<color>00000000</color>
</LabelStyle>
en remplaçant cette couleur par ffffff , ces chiffres correspondant à la balise <name> ne s'affichent plus.
Après quelques tests, il s'avère que OpenLayers ne gère pas la transparence totale du type texte.
Une solution rapide serait d'utiliser la couleur 01ffffff: les chiffres ne sont pas totalement transparents mais on ne les voit pas.
Une autre solution serait de supprimer tout simplement la balise <LabelStyle>
Rien
Plus précisemment :
* Si le KML contient des styles, ils sont analysés et appliqués aux objets (sauf contre-ordre) surtout ceux qui l'impose (styleUrl) ;
* Si les styles utilisent BaloonStyle ceux-ci prennent la main sur le fonctionnement par défaut (puisque c'est le KML qui contient les règles d'affichage).
De plus, les champs name et description ont une signification spéciale dans le KML et ne sont pas traités comme les autres "attributs"
As-tu, de ton côté, changer la structure des KML ?
Justement, je n'avais rien changé aux kml. D'ailleurs ça fait pareil sur mon ordi ubuntu à la maison avec un ancien kml qui date d'avant le 28 mai.
Y aurait-il un code simple qui permettrait de désactiver ce <LabelStyle>, pour éviter de corriger à la main chaque nouveau kml ?sauf contre-ordre
En tout cas, encore merci pour le coup de main du forum.
Je désactiverai plutôt <styleUrl> sinon tu auras un KML incorrect
Comme tu as une ubuntu, un script sed fera l'affaire :
tu peux ajouter l'option -i pour modifier directement le kml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 sed -e 's/<\(styleUrl.*styleUrl\)>/<!--\1-->/' fichier.kml > fichiermodifié.kml
Edit: cependant si tu enlèves les styles, il faudra les mettre via l'API ... Je préfèrerais donc ne pas enlever les styleUrl Au passsage, il y en une erreur 404 sur le second KML (déviations)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 sed -i -e 's/<\(styleUrl.*styleUrl\)>/<!--\1-->/' fichier.kml
En fait, j'ai mal posé la question. Je pensais plutôt à une option à ajouter au code javascript de la carte. Option qui commanderait à l'api de ne pas afficher cette donnée <name><![CDATA[xxx]]></name>. Mais à condition que ça n'augmente pas trop la complexité du javascript de la carte. De toute façon, on intervient déjà dans le kml (exporté à partir d'Arcmap) avec un éditeur de texte pour corriger le symbole, sa taille, de temps en temps la couleur des styles et à chaque fois le codage des caractères.
L'esprit est de rester dans une utilisation de l'api la plus basique possible, parce que d'abord, je n'ai pas le niveau pour faire mieux, et pour assurer la continuité du service en permettant la maintenance des pages par des non spécialistes.
Le kml déviations n'est pas présent la plupart du temps. Il est juste prévu pour afficher occasionnellement un itinéraire de déviation en cas de chantier de longue durée sur une route importante.
Coucou, me revoilou,
Je suis en train de travailler sur une autre carte et je suis encore gêné par les labels.
J'ai du mal à comprendre la différence entre popup et label, mais s'il y en a une, il y aurait peut-être un moyen simple de contrôler le comportement de l'un sans influencer le comportement de l'autre.
Dans la carte, il y a, d'une part, des popups qui s'affichent quand on clique sur les entités du kml et, d'autre part, des labels qui s'affichent en permanence si je ne supprime pas les balises <LabelStyle> avant de publier le kml. Or je ne veux pas de l'affichage de ces labels et je ne peux pas empêcher la présence de ces balises <LabelStyle> dans les kml générés par les outils ArcGis. Donc je suis contraint de modifier les kml dans un éditeur de texte avant de les publier.
Est-ce qu'il n'y aurait pas un code simple à ajouter dans ma page JavaScript qui désactiverait l'affichage des labels sans perturber le fonctionnement des popups, et qui me dispenserait de modifier les kml dans un éditeur ?
En fait, tu veux interpréter les styles de ton KML, sauf le <LabelStyle> ... dur, dur
Je ne vois qu'une seule soluce qui serait de mettre la valeur label du style de chaque objet à null ou '' ... Pour cela, il faut donc dans l'ajout de la couche inséré quelque chose comme :
bon test
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 viewer.getMap().addLayer( "KML", "Travaux", "/html/cg45/api_ign/chantiers.kml", { displayInLayerSwitcher: false, visibility: true, originators:[{logo:'Le Conseil Général du Loiret', pictureUrl: 'logo_cg45_50.gif', url: 'http://www.loiret.com/'}], preFeatureInsert: /** * Empêche l'affichage des labels. * * Parameters: * f - {OpenLayers.Feature} the newly created feature. */ function(f) { if (f) { // default Geoportal API : cursor pointer on hover ... Geoportal.Popup.setPointerCursorForFeature(f); if (f.attributes['label']) { f.attributes['label']= ''; } } } } );
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager