J'ai cherché un peu pour effectuer des changements sur le style des labels affichés, mais cela semble assez limité avec ce qui est offert par OpenLayers 2.8
Néanmoins, j'ai vu qu'il y avait des demandes, voire des tickets de prévus autour de ces affichages (par contre, j'ai un peu de mal à comprendre comment ils fonctionnent...comment effectuer ces demandes...remonter un bug...)
Ainsi, je ne sais pas si ce qui suit sera pris en compte (j'ai vu cette demande sur plusieurs endroits (forums...) et cela fait partie aussi de ma demande
http://openlayers.org/pipermail/user...st/013105.html
L'évolution semble effectivement triviale, en ajoutant deux propriétés définissant des offsets en X et Y (on se demande pourquoi elle n'a pas été faite d'emblée comme pour les graphiques)...L'inconvénient actuel est que le label peut être positionné selon différents alignements mais cela est fait de telle façon que si on a un graphique, le texte le chevauche, car il part ou termine pile au centre de ce graphique.
J'ai bien essayé de ruser en mettant un "_" à la fin du label pour mieux le voir...mais là encore, il manque une couleur de fond pour le label...
Là encore, j'ai essayé de ruser en utilisant ce qu'il y a de disponible dans la version 2.8, j'ai donc effectuer ceci :
Par contre, j'ai mis des tailles arbitraires pour les attributs :
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 CoucheKMLDirecte = map.getMap().addLayer("KML", aNomCouche, aNomFichierKML, { buffer: 0, visibility:true, opacity:true, view:{ drop:true, zoomToExtent:true }, extractAttributes:true, extractStyles: true, preFeatureInsert:function(f) { if (f) { // Voir pour : OpenLayers.Rule --> minScaleDenominator et maxScaleDenominator // default Geoportal API : cursor pointer on hover ... Geoportal.Popup.Anchored.setPointerCursorForFeature(f); // Voir http://code.google.com/intl/fr/apis/kml/documentation/kmlreference.html#labelstyle OpenLayers.Util.extend(f.style, { label: f.attributes.name+"_", labelAlign: "rb", fontColor: "black", fontWeight: "bold", fontSize: "12px", backgroundGraphic:"./images/BarreJaune.png", backgroundHeight : 16, backgroundWidth : 32, backgroundXOffset : -36, backgroundYOffset : -12, fontFamily: "Courier New, monospace" }); }}, attribution:"fourni par xxx", minZoomLevel : MinZoomLevelCarto, maxZoomLevel : MaxZoomLevelCarto, originators:[ { pictureUrl:'./images/logo_xxx.png', url: 'http://www.xxx.net' } ] } );
backgroundHeight : 16,
backgroundWidth : 32,
backgroundXOffset : -36,
backgroundYOffset : -12,
Ne serait-ce pas possible de les calculer en fonction du style et du texte du label ?
A priori, j'ai lu qu'il faudrait changer le renderer pour effectuer des améliorations, mais je ne suis pas assez fort en Javascript/OL + les différents navigateurs pour effectuer cela...J'ai déjà du mal avec les acronymes VML, SVG et SLD...
Un aperçu de mon résultat courant est en pièce jointe.
Pour DGRichard : Rien n'est prévu (ou prévisible) au niveau Geoportail pour améliorer ces affichages aux options sommaires ?...La couleur de fond me parait indispensable pour afficher au dessus d'une orthophoto, non ?
Toutes idées, améliorations ou suggestions sont les bienvenues
Partager