Suite

Couche wmts dans Openlayers de Geoserver


J'ai des couches dans Geoserver (dernière stable) qui proviennent de données PostGIS (elles appartiennent à un magasin de type PostGIS et obtiennent des données d'une base de données PostGIS)

Dans ces couches, il n'y a que des paramètres WMS, pas WMTS

Je suis allé à Caching Defaults dans Geoserver, le service WMTS est déjà activé.

Je suis donc allé à mes Openlayers et j'ai essayé ceci, afin que je puisse obtenir une couche basée sur PostGIS, du Geoserver à la carte.

var projection = ol.proj.get('EPSG:3857'); var textent = ol.proj.transformExtent([2297128.5, 4618333, 2459120.25, 4763120], 'EPSG:900913', 'EPSG:3857'); var projectionExtent = projection.getExtent(); var size = ol.extent.getWidth(projectionExtent) / 256 ; var resolutions = new Array(14); var matrixIds = new Array(14); for (var z = 0; z < 14; ++z) { // générer des résolutions et des tableaux matrixIds pour ce WMTS resolutions[z] = size / Math.pow(2, z); matriceIds[z] = z; } var ait = new ol.layer.Tile({ opacité : 0.7, étendue : textent, source : new ol.source.WMTS({ url : 'http://localhost:8080/geoserver/mymap/wmts?', couche : 'mymap:planet_osm_polygon, mymap:planet_osm_line, mymap:planet_osm_roads, mymap:planet_osm_point', matrixSet : 'EPSG:3857', format : 'image/png', projection : projection, tileGrid : new ol.tilegrid.WMTS({ origin : ol.extent.getTopLeft(projectionExtent), résolutions : résolutions, matrixIds : matrixIds }), style : 'default' }) })

planet_osm_polygon,planet_osm_line,planet_osm_roadsetplanet_osm_pointcomposent la couche finale. Dans les paramètres WMS simples seraitparams : {'LAYERS' : 'mymap:planet_osm_polygon, mymap:planet_osm_line, mymap:planet_osm_roads, mymap:planet_osm_point'…mais, dans le cas du WMTS, je ne sais pas comment je devrais les définir, c'est pourquoi je les ai mis encouche

Cela ne fonctionne pas, je reçois

OBTENIR http://localhost:8080/geoserver/mymap/wmts?layer=mymap%3Aplanet_osm_polygon%2C%20mymap%3Aplanet_osm_line%2C%20mymap%3Aplanet_osm_roads%2C%20mymap%3Aplanet_osm_point&style=EP3&ServiceTilemaTrix&Sm3Av .0&Format=image%2Fpng&TileMatrix=9&TileCol=286&TileRow=196 404 (non trouvé)

Est-ce que j'utilise les mauvais paramètres ou Geoserver ne prend pas en charge WMTS pour les couches basées sur PostGIS ?


Le WMTS du géoserveur par défaut (cache Web géo) est disponible à l'adresse http://myserver.com:8080/geoserver/gwc/service/wmts?request=getcapabilities . Je suppose que vous devez utiliser une URL similaire à celle-ci pour obtenir le document sur les capacités, puis vérifier que votre code correspond aux paramètres qui y sont annoncés.


pour commencer…

essayez TileMatrix=EPSG%3A38579%3A9 dans l'URL //ESPG:3857:9

changer matrixIds[z] = z en matrixIds[z] = 'ESPG:3857:' + z (même problème - ce correctif a fonctionné pour moi)

vérifiez les capacités d'obtention WMTS pour vous assurer que vous référencez le bon ensemble de matrices de tuiles (dans mon cas, j'utilise ESPG: 900913) et les indices de colonne et de ligne sont conformes aux limites définies pour chaque matrice de tuile (niveau de zoom)

assurez-vous que votre style SLD est en fait "par défaut" ou la demande échouera également


Voir la vidéo: Openlayers 6 # - Debugging Techniques (Octobre 2021).