Suite

Openlayers 3 ol.layer.Tile shift de la version 3.6.0 et en avant

Openlayers 3 ol.layer.Tile shift de la version 3.6.0 et en avant


J'ai des tuiles locales sur mon application OL 3 en version 3.6.0. J'ai remarqué que lorsque je mets à niveau vers la version 3.7.0, je dois réécrire mon tileUrlFunction ou bien ils ne s'affichent plus.

Voici le changement de code que je dois faire :

source: new ol.source.XYZ({ tileUrlFunction: function (coordinate) { if (coordinate == null) { return ""; } var z = coordinate[0]; var x = coordinate[1]; //var y = coordonnée[2] ; //3.6.0 var y = -coordinate[2] ; //3.7.0 renvoie 'tiles/controlroom/' + z + '/' + x + '/' + y + '.png ">

Lorsque je zoome, l'écart semble se rapprocher de ce qu'il était avec la 3.6.0

Pourquoi cela arrive-t-il ?


Cela est dû à un changement dans la façon dont OpenLayers gère certaines coordonnées de tuile, comme indiqué dans les notes de version pour OpenLayers 3.7. J'ai écrit plus sur le problème dans cette réponse : https://stackoverflow.com/questions/32454234/using-bing-maps-quadkeys-as-openlayers-3-tile-source/32614039#32614039

Vous n'êtes pas loin de résoudre votre problème, il vous suffit de décaler la coordonnée y d'un cran vers le bas :

// notez la partie "- 1" var y = -coordinate[2] - 1; //3.7.0

Voir la vidéo: OpenLayers Introduction for Beginners