Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Printemps des cartes 2024

#1 Tue 26 March 2019 12:56

michel56
Participant assidu
Lieu: Lorient
Date d'inscription: 14 Jul 2012
Messages: 474

QGIS 3.6: Générer des tiles XYZ en Lambert 93

Bonjour,


Est-il possible de générer un Mbtiles en Lambert 93 à partir d'un GéoTiff L93.

J'ai testé avec Qtiles mais il convertit en WGS84.

Merci.


Opérateur cartographique & DAO & PHP.

Hors ligne

 

#2 Tue 26 March 2019 13:56

nitram
Participant assidu
Lieu: Brest
Date d'inscription: 19 May 2009
Messages: 989
Site web

Re: QGIS 3.6: Générer des tiles XYZ en Lambert 93

Bonjour,

J'ai envie de vous répondre non, "Le SRS est toujours la projection Pseudo-Mercator (ie Google Mercator)."
https://gdal.gloobe.org/gdal/formats/mbtiles.html

Martin

Dernière modification par nitram (Tue 26 March 2019 13:56)

Hors ligne

 

#3 Tue 26 March 2019 15:50

dominique.lys
Participant assidu
Date d'inscription: 5 Oct 2006
Messages: 473
Site web

Re: QGIS 3.6: Générer des tiles XYZ en Lambert 93

En revanche c'est possible avec Geopackage

Hors ligne

 

#4 Tue 26 March 2019 15:51

michel56
Participant assidu
Lieu: Lorient
Date d'inscription: 14 Jul 2012
Messages: 474

Re: QGIS 3.6: Générer des tiles XYZ en Lambert 93

Merci pour la réponse.

Et en tiles XYZ, Qtiles fait la reprojection en WGS84 également. Avec gdal2tile je comprend pas trop ce qu'il exporte. Les répertoire de zoom sont créés mais pas pour les coordonnées X et Y. Il incrémente le répertoire à partir de 0 comme pour le zoom

Il doit bien y avoir un moyen.

Géoserver semble générer du L93 dans son cache mais le format n'est pas pas lisible par Openlayers.

Actuellement mes données sont dans une base mysql en L93 lisible avec Openlayers et Qgis et je souhaite ajouter un fond de carte avec PR routier GéoTiff.

Dernière modification par michel56 (Tue 26 March 2019 15:53)


Opérateur cartographique & DAO & PHP.

Hors ligne

 

#5 Tue 26 March 2019 17:55

michel56
Participant assidu
Lieu: Lorient
Date d'inscription: 14 Jul 2012
Messages: 474

Re: QGIS 3.6: Générer des tiles XYZ en Lambert 93

on peut lire le Mbtiles avec TileServer PHP et l'afficher dans openlayers mais le Geopackage on l'affiche comment dans le navigateur.


Opérateur cartographique & DAO & PHP.

Hors ligne

 

#6 Tue 26 March 2019 18:28

dominique.lys
Participant assidu
Date d'inscription: 5 Oct 2006
Messages: 473
Site web

Re: QGIS 3.6: Générer des tiles XYZ en Lambert 93

On peut utiliser un serveur de tuile pour proposer un WMTS à partir d'un cache Geopackage, par exemple avec Maproxy.

Vu cet exemple aussi qui utilise une lib js pour lire le gpkg.

Cela dit il doit y avoir moyen de faire quelque-chose avec gdal2tiles, le problème c'est que le code est vieux avec peu d'options. Les tuiles sont au format TMS, c'est une arborescence à 3 niveaux : zz/xxxx/yyyy. J'ai testé rapidement avec l'option -p raster qui semble adaptée à une projection autre que web mercator. Il génère également un exemple d'intégration avec openlayers 2 (!), qui fonctionne chez moi moyennant la mise à jour d'un nom de variable (tile_size > tileSize), je pense qu'on y trouve toutes les infos pour une intégration avec openlayers 5.

Il y avait à l'époque l'outil maptiler qui proposait une interface graphique à gdal2tiles avec des options supplémentaires mais qui est passé en freeware depuis. Il existe néanmoins un fork porté par l'osgeo : mapslicer, une des options les plus intéressante est la génération des tuiles au format jpeg ou hybride png/jpg.

Dernière modification par dominique.lys (Tue 26 March 2019 18:28)

Hors ligne

 

#7 Wed 27 March 2019 11:28

michel56
Participant assidu
Lieu: Lorient
Date d'inscription: 14 Jul 2012
Messages: 474

Re: QGIS 3.6: Générer des tiles XYZ en Lambert 93

Je ne pensais pas qu'on pouvait lire du Geopackage avec javascript.

J'ai testé mapslicer sur ubuntu et j'ai réussi à faire mes tiles mais elles s'affichent avec ol2 pas ol5.

Sinon j'ai trouvé ce script pour générer mes tiles en XYZ avec gdal2tiles et l'option -x, --xyz en ligne de commande.

A tester.

https://github.com/Luqqk/gdal2tiles

Dernière modification par michel56 (Wed 27 March 2019 11:28)


Opérateur cartographique & DAO & PHP.

Hors ligne

 

#8 Wed 27 March 2019 13:05

dominique.lys
Participant assidu
Date d'inscription: 5 Oct 2006
Messages: 473
Site web

Re: QGIS 3.6: Générer des tiles XYZ en Lambert 93

J'ai testé mapslicer sur ubuntu et j'ai réussi à faire mes tiles mais elles s'affichent avec ol2 pas ol5.


Oui ce que voulais dire c'est qu'à partir du code pour ol2 il ne devrait pas être trop difficile de faire une mise à jour pour ol3 et +

Pour l'option XYZ ce sera du coup en web mercator uniquement

Hors ligne

 

#9 Wed 27 March 2019 15:15

michel56
Participant assidu
Lieu: Lorient
Date d'inscription: 14 Jul 2012
Messages: 474

Re: QGIS 3.6: Générer des tiles XYZ en Lambert 93

Je vais rester en Lambert 93 quitte à réutiliser ol2.

Comment se fait-il que gdal2tile, mapslicer exportent en TMS, et que ol3 ol4 ol5 ne reconnait plus le format.

Dernière modification par michel56 (Wed 27 March 2019 15:17)


Opérateur cartographique & DAO & PHP.

Hors ligne

 

#10 Wed 27 March 2019 17:19

dominique.lys
Participant assidu
Date d'inscription: 5 Oct 2006
Messages: 473
Site web

Re: QGIS 3.6: Générer des tiles XYZ en Lambert 93

Pcq ce sont de vieux outils plus mis à jour et que plus personne n'utilise le TMS supplanté par WMTS (il faut dire que TMS place l'origine du repère à l'angle inférieur gauche alors que google et WMTS le mette à l'angle supérieur gauche...)

néanmoins ça semble possible :

https://gis.stackexchange.com/questions … projection
https://github.com/openlayers/openlayers/issues/3923

de mon côté j'y arrive pas

EDIT finalement je suis arrivé à quelquechose

Code:

<!doctype html>
<html lang="en">
  <head>
    <link rel="stylesheet" href="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/css/ol.css" type="text/css">
    <style>
      .map {
        height: 600px;
        width: 100%;
      }
    </style>
    <script src="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/build/ol.js" type="text/javascript"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.5.0/proj4.js" type="text/javascript"></script>

    <title>GDAL2Tiles OpenLayers 5 example</title>

  </head>
  <body>

    <div id="map" class="map"></div>

    <script type="text/javascript">

        proj4.defs("EPSG:2154","+proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
        ol.proj.proj4.register(proj4);

        projExtent = [-378305.81, 6093283.21, 1212610.74, 7186901.68]; //Lambert 93 from epsg.io [left, bottom, right, up]
        ol.proj.get('EPSG:2154').setExtent(projExtent);

        rasterExtent = [730250.5619, 6365062.3618, 737563.6452, 6371470.373]; //refer to tilemapresource.xml

        var rasterGrid = new ol.tilegrid.TileGrid({
            extent: rasterExtent,
            tileSize: [256, 256],
            origin: ol.extent.getBottomLeft(rasterExtent),
            resolutions: [40, 20, 10, 5, 2.5] //refer to tilemapresource.xml
        });

        var map = new ol.Map({
            target: 'map',
            view: new ol.View({
              projection: 'EPSG:2154',
              extent: rasterExtent, //fails if set to projExtent !?
              center:  ol.extent.getCenter(rasterExtent),
              zoom: 8
            })
        });

        var osm = new ol.layer.Tile({
            source: new ol.source.OSM()
        })
        map.addLayer(osm);

       var rasterLayer = new ol.layer.Tile({
            source: new ol.source.TileImage({ //also works with ol.source.XYZ !
            projection: 'EPSG:2154',
            tileGrid: rasterGrid,
            //url: './{z}/{x}/{-y}.png', //fails
            tileUrlFunction: function(coords) {
              var url = './'+coords[0]+'/'+ coords[1] +'/'+ coords[2] +'.png';
              return url;
            }
          })
        });

      map.addLayer(rasterLayer);

    </script>
  </body>
</html>

Dernière modification par dominique.lys (Wed 27 March 2019 18:23)

Hors ligne

 

#11 Thu 28 March 2019 09:55

michel56
Participant assidu
Lieu: Lorient
Date d'inscription: 14 Jul 2012
Messages: 474

Re: QGIS 3.6: Générer des tiles XYZ en Lambert 93

Impeccable.

Exactement ce que je cherchais. (J'ai pas eu besoin de proj4 mes données sont toutes en L93)

Pour des petites applications avec des fonds rasters mis à jour tous les deux ou trois ans, cette méthode est largement suffisante.

Pas besoin de serveur carto et c'est très rapide.

Je voulais joindre une photo mais ça ne fonctionne pas.

Merci pour votre aide.

Dernière modification par michel56 (Thu 28 March 2019 10:21)


Opérateur cartographique & DAO & PHP.

Hors ligne

 

Pied de page des forums

Powered by FluxBB