Suite

OpenLayers 3 : la couche de tuiles ne s'affiche pas correctement

OpenLayers 3 : la couche de tuiles ne s'affiche pas correctement


J'essaie d'utiliser OpenLayers 3 pour afficher les tuiles d'un référentiel TMS. Je ne sais pas pourquoi je n'ai que certaines parties de la couche de base affichée, la partie nord-ouest comme vous pouvez le voir :

Voici mon code :

var NESource = new ol.source.XYZ({ projection: 'EPSG:4326' , url: 'datatest/tms/NaturalEarthII/{z}/{x}/{-y}.jpg">

J'ai trouvé une solution de travail basée sur OL v. 3.7

voici un exemple avec une popup http://mappe-t.comune.modena.it/prove/demo_ol3/tms_ol3_with_popup.html

essentiellement pour restituer correctement une couche TMS générée avec GDAL2TILES sur openlayers 3, il est nécessaire de créer une source tileImage personnalisée, voici mon code de travail :

/* PARAMÈTRES DE CONFIGURATION DÉSUMÉS À PARTIR du fichier généré par gdal2tiles http://mappe.comune.modena.it/ortofoto/2014/tilemapresource.xml */ var tms_resolutions_2014 = [ 102.399999999999979, 51.19999999999999990, 25.599999 1.99999999999, 12.7999999000999999, 6.399990000 0,4000000000000, 0,2000000000000, 0,1000000000000000] ; var extend_ortofoto_2014 = [1640349.34499999997206, 4935769.97499999962747, 1659997.044999999992549, 4956992.875000000000000]; /* PARAMÈTRES DE CONFIGURATION DÉSUMÉS DE http://epsg.io/3003 */ var coordSystemCode = 'EPSG:3003'; var projectionMonteMario = ol.proj.get(coordSystemCode); //var extend_italy_monte_mario = [1290679.24, 4194066.17, 2226886.34, 5259894.49]; var extend_italy_monte_mario = [1290650.93, 4192956.42, 2226749.10, 5261004.57]; projectionMonteMario.setExtent(extent_italy_monte_mario); //COUCHE TMS. EST CONFIGURÉ COMME UN TileImage PERSONNALISÉ source var tmsModena = new ol.layer.Tile({ preload: 1, source: new ol.source.TileImage({ crossOrigin: null, extent: extent_ortofoto_2014, projection: projectionMonteMario, tileGrid: new ol.tilegrid .TileGrid({ extent : extent_ortofoto_2014, origine : [extent_ortofoto_2014[0], extent_ortofoto_2014[1]], résolutions : tms_resolutions_2014 }), tileUrlFunction : function(coordinate) { if (coordinate === null) return undefined ; // Style TMS URL var z = coordonnée[0] ; var x = coordonnée[1] ; var y = coordonnée[2] ; var url = 'http://mappe.comune.modena.it/ortofoto/2014/'+z+'/ '+ x +'/'+y +'.jpg">

Il me semble que vous mélangez une syntaxe avec openlayers 2. Je ne sais pas si c'est le seul problème, mais c'est certainement un problème.

Par exemple:

var NETileLayer = new ol.layer.Tile({ source : NESource , isBaseLayer : true , wrapDateLine : false , étendue : [-180.0, -90.0, 180.0, 90.0] });

isBaseLayer est une chose OL2, tout comme wrapDateLine.

Consultez la nouvelle documentation API ici : http://openlayers.org/en/v3.0.0/apidoc/ol.layer.Tile.html

Peut-être que la configuration d'un JSFiddle aiderait à déterminer précisément quelles sont les erreurs, mélanger ol2 et ol3 va certainement faire une mauvaise journée.


Voir la vidéo: charpente pose de tuile