J'utilise des tuiles personnalisées générées par gdal. Dans la version 1.0, les tuiles sont inversées sur l'axe des y après un zoom avant. J'ai essayé de basculer tms
de vrai à faux, mais cela n'a eu aucun effet. J'ai également essayé la nouvelle fonctionnalité {-y}
(avec l'option tms supprimée), mais elle renvoie une erreur "Aucune valeur fournie pour la variable {-y}".
Après avoir bidouillé pendant un certain temps, j'ai référencé 0.6.4 au lieu de 1.0 et tout fonctionne.
Au fait, le lien cdn vers 0.7.7 semble en panne : http://cdn.leafletjs.com/leaflet-0.7.7/leaflet.js
Lien vers https://unpkg.com/[email protected]/dist/leaflet.js pour 1.0
var map = L.map('map', {
crs: L.CRS.Simple,
center: L.latLng(-128, 128),
zoom: -2
});
L.tileLayer('/map/{z}/{x}/{y}.png', {
noWrap: true,
attribution: 'WW',
detectRetina: false,
bounds: L.latLngBounds(
L.latLng(-256, 0),
L.latLng(0, 256)
),
tms: true,
minZoom: 0,
maxZoom: 4
}).addTo(map);
Fonctionne pour moi, voir http://playground-leaflet.rhcloud.com/bahu/edit?html , sortie
La prochaine fois, consultez le didacticiel WMS/TMS , qui contient des exemples fonctionnels de TMS, et formulez un rapport de bogue comme un véritable rapport de bogue.
D'accord, j'avais déjà lu cela (et tous les tutoriels), mais cela ne s'applique pas vraiment aux tuiles personnalisées en conjonction avec TMS. Le tutoriel le plus proche est http://leafletjs.com/examples/crs-simple/crs-simple.html. Étant quelque peu un sujet ésotérique, j'espérais des conseils. Je demanderai sur Stackoverflow la prochaine fois, ma mauvaise.
Pour toute autre personne essayant de faire fonctionner CRS.Simple avec la mosaïque générée par GDAL, le problème semble être causé par ce bloc de code
if (this._map && !this._map.options.crs.infinite) {
var invertedY = this._globalTileRange.max.y - coords.y;
if (this.options.tms) {
data['y'] = invertedY;
}
data['-y'] = invertedY;
}
Le y
ne s'inversera jamais car infinite
est défini sur true dans CRS.Simple. La création d'une copie personnalisée de CRS.Simple avec infinie = false a fait l'affaire pour ma situation.