IGNF / geoportal-extensions

French Geoportal Extensions for well-known javascript mapping libraries (Leaflet and OpenLayers)
https://ignf.github.io/geoportal-extensions/
Other
64 stars 33 forks source link

Extension OL3 : rationnaliser l'utilisation des styles et markers par defaut pour les controles #69

Closed gcebelieu closed 3 years ago

gcebelieu commented 7 years ago

Les différents contrôles de l'extension OL3 utilisent des ressources par défaut si celles-ci ne sont pas renseignées par l'utilisateur.

Il faudrait rassembler et partager ces différentes définitions par défaut dans un code commun et public exporté par l'extension.

Rque : le commit suivant exporte déjà les markers par défaut des controles Route et Isocurve sous le nom ol.control.DefaultMarkers :

https://github.com/IGNF/geoportal-extensions/commit/25debb7cf8d8b4283b77e979212626683cf96f71

lboulanger commented 7 years ago

Info : actuellement, utilisation des styles par les contrôles de l'extension pour OL3 :

I. OVERLAYS

Contrôles "Route", "IsoCurve", "SearchEngine" : utilisation d'overlays (http://openlayers.org/en/v3.14.2/apidoc/ol.Overlay.html) => on pourrait paramétrer les paramètres suivant :

Pour "Route" et "IsoCurve", on peut déjà paramétrer ces overlays, simplement en spécifiant une autre image pour le marker (l'élément est donc forcément de type ), et son décalage :

    var route = new ol.control.Route({
        markersOpts : {
            departure : {
                url : ""data:image/png;base64,xxxx",
                offset : [-25.5, -38]
            }
        }
    });

solution 1 : garder le même paramétrage pour "Route" et "IsoCurve", et mettre en place pour SearchEngine :

    var searchEngine = new ol.control.SearchEngine({
        markerOpts : {
            url : ""data:image/png;base64,xxxx",
            offset : [-25.5, -38]
        }
    })

solution 2 : mettre en place un paramétrage + poussé, où l'utilisateur peut spécifier sa propre div pour les overlays, avec les paramètres qui l'accompagnent. Ex :

var searchEngine = new ol.control.SearchEngine({
        markerOpts : {
            element : maPropreDivImage,
            positioning : "bottom-right"
        }
    })

=> nécessite + de maîtrise, mais + proche du comportement d'OpenLayers.

II. Styles pour des features (couches vecteur)

Contrôles "ReverseGeocode", "LayerImport", "Drawing", "ElevationPath" et "Measures" : utilisation de couches vecteur et de features (http://openlayers.org/en/v3.14.2/apidoc/ol.Feature.html) => on peut paramétrer leur style directement, avec un ol.style.Style (http://openlayers.org/en/v3.14.2/apidoc/ol.style.Style.html)

elias75015 commented 3 years ago

Report du ticket en interne