Я использую пользовательские плитки, созданные gdal. В версии 1.0 плитки меняются местами по оси Y после увеличения. Я попытался переключить tms
с true на false, но это не дало результата. Я также попробовал новую функцию {-y}
(с удаленной опцией tms), но она выдает ошибку «Не указано значение для переменной {-y}».
После того, как я немного поигрался, я сослался на 0.6.4 вместо 1.0, и все работает.
Кстати, ссылка cdn на 0.7.7 кажется неработающей: http://cdn.leafletjs.com/leaflet-0.7.7/leaflet.js
Связывание с https://unpkg.com/[email protected]/dist/leaflet.js для 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);
У меня работает, см. Http://playground-leaflet.rhcloud.com/bahu/edit?html , вывод
В следующий раз ознакомьтесь с руководством по WMS / TMS , которое содержит рабочие примеры TMS, и сформулируйте отчет об ошибке, как настоящий отчет об ошибке.
Правильно, я уже прочитал это (и все руководства), но на самом деле это не относится к настраиваемым плиткам в сочетании с TMS. Ближайший учебник - http://leafletjs.com/examples/crs-simple/crs-simple.html. Поскольку я относился к какой-то эзотерической теме, я надеялся на руководство. Спрошу на Stackoverflow в следующий раз, плохо.
Для всех, кто пытается получить CRS. Простая работа с тайлингом, созданным GDAL, проблема, похоже, вызвана этим блоком кода
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;
}
y
никогда не будет инвертирован, потому что infinite
имеет значение true в CRS.Simple. Создание настраиваемой копии CRS.Simple с infinite = false помогло в моей ситуации.