On constate que l'ajout du bouton provoque l'ajout d'une ligne supplémentaire, un sacré décalage et que même la modification des coordonnées ne solutionne pas.
Ce point est dû au panel dans lequel est ajouté le bouton :
1 2 3 4 5 6 7
| var tbx5 = viewer.getMap().getControlsByClass('Geoportal.Control.ToolBox')[0];
var B_Recherche = new Geoportal.Control.Panel({
div:OpenLayers.Util.getElement(tbx5.id+'_search')
});
...
B_Recherche.addControls([gazetteer]);
viewer.getMap().addControls([B_Recherche]); |
Ces morceaux de code créent un panel de contrôle, intitulé ToolBox_search, juste en-dessous du panel déjà utilisé, intitulé ToolBox_nav, et ajoutent le bouton dans ce panel. Deux conséquences :
- l'ajout d'une ligne apparente, celle du nouveau panel
- un bouton "coincé" dans ce panel
A la place de ça, il faut ajouter le bouton dans le panel que l'on a utilisé pour les autres boutons, qui dans ton code est matérialisé par l'objet nv :
1 2 3 4 5 6 7 8 9 10 11 12 13
| var gazetteer= new Geoportal.Control.LocationUtilityService.Geocode(
new Geoportal.Layer.OpenLS.Core.LocationUtilityService(
'StreetAddress:OPENLS;Geocode',
{
formatOptions: {
}
}
),{
uiOptions:{title: 'gpControlLocationUtilityService.geocode.title'},
setZoom: Geoportal.Control.LocationUtilityService.Geocode.setZoomForBDNyme
}
);
nv.addControls([gazetteer]); |
Avec cela, le bouton ira bien se positionner dans le bon panel, à coté des autres, et aucun panel supplémentaire ne sera ajouté (ce qui fera re-disparaître cette ligne qui décale tout).
Ensuite, tu positionnes ton bouton comme tu l'as fait d'habitude, en absolu avec des coordonnées top et left. J'attire néanmoins ton attention sur le fait que le nom de classe du bouton est "gpControlLocationUtilityServiceGeocodeItemInactive" et non "gpControlLocationUtilityServiceGeonamesItemInactive" (la confusion était facile).
Tout ça devrait déjà régler tes problèmes de mise en page de ton cartouche d'outils.
Partager