banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 27 October 2016 12:14

infostar31
Participant occasionnel
Date d'inscription: 5 Mar 2015
Messages: 11

Afficher un LayerSwitcher OpenLayers 3 dans un Sidebar

Bonjour,

Je voudrais afficher la liste des Cartes de fonds ainsi que les Couches de données comme dans un Layerswitcher mais en dehors de la Carte dans un Div nommé Sidebar.

J'ai pas réussi en testant avec les ol.control.LayerSwitcher dans OpenLayers 3.

sur le HTML :

Code:

<body>
...
<div id="layerswitcher"></div> 
<div id="map">    </div>
...
</body>

sur le JS :

Code:

(function() {
    /*var controls = [
                new ol.control.Attribution(),
                new ol.control.MousePosition({
                    undefinedHTML: 'outside',
                    projection: 'EPSG:4326',
                    coordinateFormat: function(coordinate) {
                        return ol.coordinate.format(coordinate, '{x}, {y}', 4);
                    }
                })
            ];*/
    var thunderforestAttributions = [
        new ol.Attribution({
            html: 'Tiles &copy; <a href="http://www.thunderforest.com/">Thunderforest</a>'
        }),
        ol.source.OSM.ATTRIBUTION
    ];

    var map = new ol.Map({
        target: 'map',
        layers: [
        
            new ol.layer.Group({
                'title': 'Carte de Base',
                layers: [
                    new ol.layer.Tile({
                        title: 'Stamen - Water color',
                        type: 'base',
                        visible: false,
                        source: new ol.source.Stamen({
                            layer: 'watercolor'
                        })
                    }),
                    new ol.layer.Tile({
                    title: 'BingMap',
                    type: 'base',
                    visible: true,
                    source: new ol.source.BingMaps({
                    key: 'AqiqAsk3FrUgtrNsRFEjhSUIQsVvfuiTkDfUGm99aKWAe-ALF4L_gLKRZ5b3tU2q',
                    imagerySet: 'AerialWithLabels'
                    })
                    }),
                    new ol.layer.Tile({
                        title: 'Stamen - Toner',
                        type: 'base',
                        visible: false,
                        source: new ol.source.Stamen({
                            layer: 'toner'
                        })
                    }),
                    new ol.layer.Tile({
                        title: 'MapQuest - OSM',
                        type: 'base',
                        visible: false,
                        source: new ol.source.MapQuest({
                            layer: 'osm'
                        })
                    }),
                    new ol.layer.Tile({
                        title: 'MapQuest - Satellite',
                        type: 'base',
                        visible: false,
                        source: new ol.source.MapQuest({
                            layer: 'sat'
                        })
                    }),
                    new ol.layer.Tile({
                        title: 'MapQuest - Hybrid',
                        type: 'base',
                        visible: false,
                        source: new ol.source.MapQuest({
                            layer: 'hyb'
                        })
                    }),
                    new ol.layer.Tile({
                        title: 'Thunderforest - OpenCycleMap',
                        type: 'base',
                        visible: false,
                        source: new ol.source.OSM({
                            url: 'http://{a-c}.tile.thunderforest.com/cycle/{z}/{x}/{y}.png',
                            attributions: thunderforestAttributions
                        })
                    }),
                    new ol.layer.Tile({
                        title: 'Thunderforest - Outdoors',
                        type: 'base',
                        visible: false,
                        source: new ol.source.OSM({
                            url: 'http://{a-c}.tile.thunderforest.com/outdoors/{z}/{x}/{y}.png',
                            attributions: thunderforestAttributions
                        })
                    }),
                    new ol.layer.Tile({
                        title: 'Thunderforest - Landscape',
                        type: 'base',
                        visible: false,
                        source: new ol.source.OSM({
                            url: 'http://{a-c}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png',
                            attributions: thunderforestAttributions
                        })
                    }),
                    new ol.layer.Tile({
                        title: 'Thunderforest - Transport',
                        type: 'base',
                        visible: false,
                        source: new ol.source.OSM({
                            url: 'http://{a-c}.tile.thunderforest.com/transport/{z}/{x}/{y}.png',
                            attributions: thunderforestAttributions
                        })
                    }),
                    new ol.layer.Tile({
                        title: 'Thunderforest - Transport Dark',
                        type: 'base',
                        visible: false,
                        source: new ol.source.OSM({
                            url: 'http://{a-c}.tile.thunderforest.com/transport-dark/{z}/{x}/{y}.png',
                            attributions: thunderforestAttributions
                        })
                    }),
                    new ol.layer.Tile({
                        title: 'OSM',
                        type: 'base',
                        visible: false,
                        source: new ol.source.OSM()
                    })
                ]
                }),
            new ol.layer.Group({
                title: 'Couches vecteur',
                layers: [

                   ......
                ]
            })
        ],
        view: new ol.View({
            center: [-59101, 3570862],
            zoom: 5,
            maxZoom: 18,
            minZoom: 2
        })
    });
   
     
    map.addControl(new ol.control.LayerSwitcher());
    map.addControl(new ol.control.MousePosition({
                    undefinedHTML: 'Coordonnées',
                    projection: 'EPSG:4326',
                    coordinateFormat: function(coordinate) {
                        return ol.coordinate.format(coordinate, '{x}, {y}', 5);
                    }
                }));
    map.addControl(new ol.control.OverviewMap({
                    collapsed: false
                }));
    map.addControl(new ol.control.ScaleLine());    

 
    var layerswitcher = new ol.control.LayerSwitcher({
        div: document.getElementById('layerswitcher') }
        );
    map.addControl(layerswitcher);
    layerswitcher.showPanel();
})

();

Si quelqu'un aurait une idée ce serait bien aimable, je suis débutante et je sens que ce n'est qu'une erreur de syntaxe ou un petit détail qui manque.

merci à tous.

Hors ligne

 

Pied de page des forums

Powered by FluxBB