IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IGN API Géoportail Discussion :

openlayers afficher une couche CartoWeb.be


Sujet :

IGN API Géoportail

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2012
    Messages : 30
    Points : 16
    Points
    16
    Par défaut openlayers afficher une couche CartoWeb.be
    Bonjour,
    comment pourrais je afficher la couche TOPO de Cartoweb.be avec l'api ign openlayers ?

    https://www.ngi.be/website/fr/offre/...cartoweb-be-2/
    Cordialement,

    Pierre

  2. #2
    Membre actif
    Homme Profil pro
    Inscrit en
    avril 2009
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : avril 2009
    Messages : 783
    Points : 290
    Points
    290
    Par défaut
    Comme pour une couche OSM peut-être ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2012
    Messages : 30
    Points : 16
    Points
    16
    Par défaut OSM
    Il faut sans doute utiliser une TyleLayer comme dans :

    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
    import Map from 'ol/Map';
    import OSM from 'ol/source/OSM';
    import TileLayer from 'ol/layer/Tile';
    import TileWMS from 'ol/source/TileWMS';
    import View from 'ol/View';
    
    const layers = [
      new TileLayer({
        source: new OSM(),
      }),
      new TileLayer({
        extent: [-13884991, 2870341, -7455066, 6338219],
        source: new TileWMS({
          url: 'https://ahocevar.com/geoserver/wms',
          params: {'LAYERS': 'topp:states', 'TILED': true},
          serverType: 'geoserver',
          // Countries have transparency, so do not fade tiles:
          transition: 0,
        }),
      }),
    ];
    const map = new Map({
      layers: layers,
      target: 'map',
      view: new View({
        center: [-10997148, 4569099],
        zoom: 4,
      }),
    });
    source :
    https://openlayers.org/en/v6.15.1/ap...TileLayer.html

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2012
    Messages : 30
    Points : 16
    Points
    16
    Par défaut essais infructueux !
    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
    46
    47
    48
    49
    window.onload = function() {
      const mapcenter = [5.0674, 49.7902];
      const map = new ol.Map({
        target: 'map',
        controls: ol.control.defaults({
          attribution: false
        }),
        view: new ol.View({
          center: ol.proj.fromLonLat(mapcenter),
          zoom: 19
        })
      });
      const layersMap = map.getLayers();
      const osmLayer = new ol.layer.Tile({
        source: new ol.source.OSM()
      });
      layersMap.insertAt(0, osmLayer);
    
      const beLayerURL = 'https://cartoweb.wmts.ngi.be/1.0.0';
      const beLayer = new ol.layer.Tile({
        source: new ol.source.TileWMS({
          url: beLayerURL,
          // projection: 'EPSG:3857',
          params: {
            // projection: 'EPSG:3857',
            layers: 'topo',
            // tiled: true,
            serverType: 'geoserver',
            format: 'png'
          }
        })
      });
      layersMap.insertAt(0, beLayer);
      
      const layerSwitcher = new ol.control.LayerSwitcher();
      map.addControl(layerSwitcher);
    
      layerSwitcher.addLayer(osmLayer, {
        title: 'OpenStreetMap',
        description: 'Carte OpenStreetMap'
      });
    
      layerSwitcher.addLayer(beLayer, {
        title: 'Belgique',
        description: 'Carte Belgique',
        legends: [{ url: 'https://cartoweb.wmts.ngi.be/legend/topo/default/legende_fr.png' }]
      });
    
    };
    La carte OSM s'affiche bien sur la belgique mais pas la carte cartoweb.be.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2012
    Messages : 30
    Points : 16
    Points
    16
    Par défaut c'est mieux avec ol.source.XYZ !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      const beLayerURL = 'https://cartoweb.wmts.ngi.be/1.0.0/topo/default/3857/{z}/{y}/{x}.png';
      const beLayer = new ol.layer.Tile({
        // extent: [2.51141671277, 49.4542277635, 6.57174320725, 51.5056073315],
        source: new ol.source.XYZ({
          url: beLayerURL,
          params: {
            layers: 'topo',
            serverType: 'geoserver',
            format: 'png'
          }
        })
      });
      layersMap.insertAt(0, beLayer);
    c'était sans doute indiqué dans https://cartoweb.wmts.ngi.be/1.0.0/WMTSCapabilities.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <ResourceURL resourceType="tile" template="https://cartoweb.wmts.ngi.be/1.0.0/topo/default/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png" format="image/png"/>
    Si j'active
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     extent: [2.51141671277, 49.4542277635, 6.57174320725, 51.5056073315]
    alors plus rien ne s'affiche. Bizarre !

  6. #6
    Membre habitué
    Homme Profil pro
    Architecte progiciel et développeur informatique
    Inscrit en
    février 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte progiciel et développeur informatique

    Informations forums :
    Inscription : février 2011
    Messages : 175
    Points : 190
    Points
    190
    Par défaut T'avais fait le plus dure ;-)
    Salut Pierre,

    merci pour ta recherche, ça peut toujours servir.

    T'avais fait le plus dur ;-)

    Sinon, pour ton extent, il suffit que tu convertisses les coordonnées géographiques en coordonnées EPSG:3857 (Web Mercator), car ta carte est dans ce format, et c'est bon.
    Tu es les informations effectivement dans le xml
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <ows:WGS84BoundingBox>
    <ows:LowerCorner>2.51141671277 49.4542277635</ows:LowerCorner>
    <ows:UpperCorner>6.57174320725 51.5056073315</ows:UpperCorner>
    </ows:WGS84BoundingBox>

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var belgiumExtent = [ 279569.630, 6352288.757, 731563.107, 6711221.861 ];
    var beLayer = new ol.layer.Tile({
    	extent: belgiumExtent,
    	source: new ol.source.XYZ({
    		url: 'https://cartoweb.wmts.ngi.be/1.0.0/topo/default/3857/{z}/{y}/{x}.png',
    	}),
    	opacity: 1,
    	visible: true
    });

    params n'est pas utile, car en mode XYZ, on met tout dans l'url.

    Xav

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2012
    Messages : 30
    Points : 16
    Points
    16
    Par défaut Ortho belgique
    Hello,
    merci Xav j'ai apporté tes améliorations et ça fonctionne super !

    J'ai trouvé aussi des orthophotos pour la Belgique :
    https://geoservices.wallonie.be/INSP...es&service=WMS
    https://geoportail.wallonie.be/catal...0232e8785.html

    soit pour openlayers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    		// Belgique Wallonie SPW couche ortho (1)
    		const beOrthoURL = "https://geoservices.wallonie.be/INSPIRE/WMS/OI/MapServer/WmsServer?";
    		const beOrthoLayer = new ol.layer.Tile({
    			extent: belgiumExtent,
    			source: new ol.source.TileWMS({
    				url: beOrthoURL,
    				params: {
    					layers: '1'
    				}
    			})
    		});
    		layersMap.insertAt(0, beOrthoLayer);
    Pierre.

  8. #8
    Membre habitué
    Homme Profil pro
    Architecte progiciel et développeur informatique
    Inscrit en
    février 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte progiciel et développeur informatique

    Informations forums :
    Inscription : février 2011
    Messages : 175
    Points : 190
    Points
    190
    Par défaut WMTS Belgique
    Re Pierre,

    visiblement tu t'intéresses grandement à la Belgique. ;-)

    J'avais trouvé ce site dans mes recherches.

    https://wmts.michelstuyts.be/?lang=fr

    Si ça peut te servir.

    Xav

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2012
    Messages : 30
    Points : 16
    Points
    16
    Par défaut Belgique
    Citation Envoyé par xavlight Voir le message
    Re Pierre,

    visiblement tu t'intéresses grandement à la Belgique. ;-)

    Xav
    Hé oui, un utilisateur Belge de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    https://gitlab.com/ruches/ruches
    Le monde entier utilise "Ruches", 2 utilisateurs !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher une couche INSPIRE WMS avec la nouvelle méthode 'ol.layer.Tile'
    Par xavlight dans le forum IGN API Géoportail
    Réponses: 2
    Dernier message: 25/11/2021, 15h48
  2. Afficher une couche IGn dans Leaflet
    Par Clement_archeo dans le forum IGN API Géoportail
    Réponses: 22
    Dernier message: 18/04/2019, 11h06
  3. Ne pas afficher une couche dans le layer switcher
    Par Mides dans le forum IGN API Géoportail
    Réponses: 6
    Dernier message: 10/10/2012, 09h16
  4. [OpenLayer]Afficher plusieures couches
    Par izeba dans le forum SIG : Système d'information Géographique
    Réponses: 0
    Dernier message: 06/11/2010, 16h14
  5. [1.0beta4] afficher une couche kml
    Par floran974 dans le forum IGN API Géoportail
    Réponses: 3
    Dernier message: 17/06/2009, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo