Facile :
En bas, l'historique : OpenLayers.Control.NavigationHistory. Le code source indique comment faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 // add history : var nxtprvLbar= new OpenLayers.Control.NavigationHistory(); viewer.getMap().addControl(nxtprvLbar); var pnp= new OpenLayers.Control.Panel({ div: tbx.createControlAnchor(tbx.id+'_nxtprv','nhBar') }); pnp.addControls([nxtprvLbar.next, nxtprvLbar.previous]); viewer.getMap().addControl(pnp);
- Le contrôleur est créé (voir le style olControlNavigationHistory dans le code source de la page);
- il est ajouté à la carte;
- on demande à l'API un emplacement utilisateur libre (demande de mga_geo si j'ai bonne mémoire) : c'est createControlAnchor() qui fait le boulot en retournant un {DOMElement}.
- Un panneau est créé avec la div précédente;
- Les contrôleurs (prev, next) du contrôleur historique sont ajoutés à ce panneau;
- la panneau est ajouté à la carte (ouf!)
Pour les autres contrôleurs (de bas en haut: ajout des couches, recherche, mesures et navigation), ces contrôleurs sont créés comme précédemment (explicitement, sauf la navigation) sauf que les div d'insertion sont prédéfinies par Geoportal.Viewer.Standard (sauf la navigation directement intégrée dans cette classe!)
j'espère que cela t'aide
Oui, j'en avais fait la demande et la page geoportalLike.html contient la réponse!
Je n'ai pas assez de temps pour tout tester...
Merci pour toutes ces nouveautés et les exemples pour les utiliser.
Non, ce n'est pas cela que je souhaitais...Cela je l'avais déjà fait, tout comme cacher un des boutons de la barre qui ne nous intéresse pas :
.olControlZoomToMaxExtentItemInactive
{
visibility:hidden;
}
Ce qui m'intéresse...C'est le fait d'avoir ces deux barres (openLayersPanel et openToolsPanel qui sont fenêtrées chez moi) avec un splitter et la possibilité de les cacher/restaurer à partir de leur splitter respectif (un à droite, l'autre à gauche)
Est-ce que cela vient du fait que je n'ai pas changé certains appels à l'API ?
Je n'ai pas remplacé l'appel de geoportalLoadmap...Faut-il le faire ?
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 <%--license serveur ecddev --%> <script type="text/javascript" src="http://api.ign.fr/geoportail/api?v=1.0beta4-e&key=7604781745260733185&instance=map&includeEngine=false"></script> <%--Unité de fonctions carto--%> <script type="text/javascript" src="./js/JavaScriptGeoportail.js"></script> <%--Récupération API carto IGN bêta1.05 compressée --%> <%-- <script type="text/javascript" src="http://api.ign.fr/geoportail/api/js/1.0beta4/GeoportalExtended.js"></script> --%> <script type="text/javascript" src="./js/GeoportalExtended.js"></script> ... geoportalLoadmap("GeoportalMapDiv", "normal", "FXX"); .... // Palette "couches" développée (true=oui false=non) map.openLayersPanel(IsPaletteCouchesDeveloppee); // Palette "outils" développée (true=oui false=non) map.openToolsPanel(IsPaletteOutilsDeveloppee);
J'ai essayé :
mais le JavaScript ne reconnait pas gGEOPORTALRIGHTSMANAGEMENT
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 map = new Geoportal.Viewer.Standard( "GeoportalMapDiv", OpenLayers.Util.extend({ territory:'FXX', projection:'IGNF:GEOPORTALFXX', displayProjection:['IGNF:RGF93G']}, gGEOPORTALRIGHTSMANAGEMENT ) );
Faudrait-il modifier autre chose ?
Désolé, j'avais pas compris
Il faut bien remplacer geoportalLoadmap() par l'appel à Geoportal.Viewer.Standard comme tu l'as fait;
Il faut aussi ne pas mettre le paramètre instance à l'appel de l'API. Cette dernière générera alors la variable gGEOPORTALRIGHTSMANAGEMENT.
Enfin, pour les méthodes openLayersPanel() et openToolsPanel(), je ne les ai pas ajoutées à Geoportal.Viewer.Standard.
Question: la demande serait bien de pouvoir avoir ces panneaux ouverts/fermés dès le lancement ?
En fait, C'est pour offrir le choix entre mode fenêtré pour les palettes OU intégré dans la carte tel que fait dans l'exemple en question.
Donc, est-ce un comportement automatique désormais (bêta 1.05) ?
Y a-t-il une méthode ou un flag à positionner pour adopter ce type de présentation ?
Y a-t-il moyen d'adopter toujours l'ancienne présentation (si c'est désormais celle par défaut) ?
Pour finir, peut-on choisir oui ou non de démarrer en mode replié dans ce mode "intégré" comme on pouvait le faire avec un flag comme auparavant ?
cf code suivant...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 // Palette "couches" développée (true=oui false=non) map.openLayersPanel(IsPaletteCouchesDeveloppee); // Palette "outils" développée (true=oui false=non) map.openToolsPanel(IsPaletteOutilsDeveloppee);
Effectivement, désormais, j'ai bien les bandes repliables sur le côté.
Mais j'ai dû désactiver le code suivant :
Y a-t-il moyen de le faire autrement ?...surtout le bandeau inférieur !!!...plus que CSS pour le faire ?
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 if (VersionBeta == 4) { // Palette "couches" développé (true=oui false=non) map.openLayersPanel(IsPaletteCouchesDeveloppee); // Palette "couches" affiché (true=oui false=non) map.setLayersPanelVisibility(true); // On cache le bandeau inférieur map.setInformationPanelVisibility(IsPanelInformation); // Palette "outils" développé (true=oui false=non) map.openToolsPanel(IsPaletteOutilsDeveloppee); }
Pour l'instant, j'ai aussi un autre problème...mon KML semble ne plus être chargé (carte du monde entier)...faut que je vois pourquoi
J'essaie de comprendre la demande en formulant ma réponse :
- Par défaut, l'API (quelque soit sa version) utilise les panneaux comme dans geoportalMap_basic.html ;
- geoportalLike.html est une page utilisant un autre look'n feel pour montrer qu'il est possible de faire sa propre interface à partir des éléments de base de l'API;
Je n'avais pas prévu d'ajouter open(Layers|Tools)Panel(), dans le cas 2, mais je peux le faire puisque c'est demandé
Ce serait
MERCI !
Je disais juste que j'avais été obligé de commenter ce code (vu que les méthodes ne sont pas implémentées dans le cas de l'utilisation de Geoportal.Viewer.Standard)
Donc j'ai aussi au préalable :
ce qui fait que pour l'instant (tant que les méthodes pour cacher les palettes et le bandeau du bas ne sont pas implémentées dans la bêta 1.05), j'utilise une variable interne (juste pour moi) pour différencier la présentation de "style" bêta 1.04 et bêta 1.05...Cela me permet de faire des tests quand même en "mode bêta 1.05" mais je garde officiellement l'ancien mode de présentation pour l'instant car sinon, en guise de carto, j'ai un timbre poste à l'affichage sur notre site
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 if (VersionBeta <= 4) { geoportalLoadmap("GeoportalMapDiv", "normal", "FXX"); } else { map = new Geoportal.Viewer.Standard( "GeoportalMapDiv", OpenLayers.Util.extend({ territory:'FXX'}, gGEOPORTALRIGHTSMANAGEMENT ) ); }
...alors si ce n'est pas disponible d'ici mes échéances de présentation de mon travail, je garderai cet "ancien style"
L'avantage est que je garde en parallèle les deux façons de faire en attendant et que je peux basculer de l'un à l'autre par un simple flag...
Voici les dernières versions de l'API (complète) et exemples associés. Par rapport à la précédente version :
- Corrections typos geoportalAlert.html / geportalLike.html (merci mga_geo);
- Ajout des méthodes open(Layers|Tools)Panel() sur Geoportal.Viewer.Standard (merci à Unusual)
Pour les autres méthodes (panneau Information), c'est limite très compliqué ... Je vais voir. Dans le moins favorable des scénarii, elles ne feront rien
Dernière version rapatriée et testée...Les palettes sont bien cachées si c'est demandé
Pourquoi est-ce plus compliqué pour le panel informations ?
Voici les dernières versions de l'API (complète) et exemples associés. Par rapport à la précédente version :
- Boggue IE8 sur le chargement (calcul de la présence des CSS chargées);
- Amélioration du chargement des WMS (calcul des min|maxZoomLevel);
- Ajout des modules set*Visibility (demande de Unusual);
- Correction typo des exemples (merci à mga_geo);
- Fix KML pour les ExtendedData dans Geoportal.Popup.Anchored.
A vos claviers
...j'ai encore une erreur au chargement sous IE8
Erreur suivante : '$lineinfo' est indéfini.
Je vais voir si je peux cerner plus avant l'endroit...
Par contre, nickel pour le setInformationPanelVisibility
Tout d'abord, merci de nous fournir la pre-version de la beta5, ça permet de faire des tests assez rapidement.
Est-ce qu'il y a quelque chose qui a changé en ce qui concerne le style des vector dans la version 1.0beta5 (plus probablement dans OL2.8) ?
Ayant constaté de gros problèmes de perf avec extractStyle à true lors de l'ajout d'un KML dans les versions précédentes je redéfinissait OpenLayers.Feature.Vector.style.default pour pouvoir changer la taille et la couleur des features, et avec la version 1.0beta5 la surchage ne suffit plus, les <Point> prennent bien la taille et la couleur indiquée mais les <LineString> sont d'une autre couleur. Peut-être une nouvelle propriété ?
Autre chose que j'ai remarqué mais qui est aussi dans la beta 4, Geoportal.Util.getElementGuessedDimensions renvoie des résultats complètement faux si la taille de la div associée au viewer est exprimée en pourcentage. Avec le markup suivant :
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 OpenLayers.Feature.Vector.style = { 'default': { fillColor: color, fillOpacity: 1, hoverFillColor: "white", hoverFillOpacity: 0.8, strokeColor: color, strokeOpacity: 1, strokeWidth: 5, strokeLinecap: "round", strokeDashstyle: "solid", hoverStrokeColor: "red", hoverStrokeOpacity: 1, hoverStrokeWidth: 0.2, pointRadius: 1.5, hoverPointRadius: 1, hoverPointUnit: "%", pointerEvents: "visiblePainted", cursor: "inherit" }};
On s'attends à ce que la valeur retournée par getElementGuessedDimensions soit de 90% * 900 = 810px, mais la valeur retournée est égale à 90% de la taille du body. Ce n'est pas un problème de css / dom non chargé (du moins il ne me semble pas). getElementRenderedDimensions renvoie les bonnes valeurs donc j'utilise le code suivant juste avant la création du viewer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <body> <div id="wrapper" style="width:900px"> <div id="mapDiv" style="width:90%"> </div> </div> </body>
Ce qui serait idéal serait que lors de la détection d'une taille proportionnelle l'API gère automatiquement le redimensionnement du viewer mais c'est un détail.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Geoportal.Util.getElementGuessedDimensions = Geoportal.Util.getElementRenderedDimensions;
Petite suggestion pour la période pre-beta5, un topic dédié aux différentes releases journalières serait pas mal, pour être sur d'avoir la dernière version et ne pas devoir fouiller les différents topics. J'aimerais bien aussi la version non compressée pour faire un gros diff et voir les différentes majs mais j'attendrais la release officielle
Bien d'accord
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