gdalによって生成されたカスタムタイルを使用しています。 1.0では、ズームイン後にタイルがy軸で反転します。 tms
をtrueからfalseに切り替えようとしましたが、効果がありませんでした。 新しい{-y}
機能(tmsオプションを削除した状態)も試しましたが、「変数{-y}に値が指定されていません」というエラーがスローされます。
しばらくいじった後、1.0ではなく0.6.4を参照しましたが、すべてが機能します。
ところで、0.7.7へのcdnリンクはダウンしているようです: http ://cdn.leafletjs.com/leaflet-0.7.7/leaflet.js
1.0のhttps://unpkg.com/[email protected]/dist/leaflet.jsに対するリンク
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 、outputを参照してください
次回は、TMSの実例を含むWMS / TMSチュートリアルを確認し、実際のバグレポートのようにバグレポートを作成してください。
そうです、私はすでにそれ(およびすべてのチュートリアル)を読んでいましたが、それはTMSと組み合わせたカスタムタイルには実際には当てはまりません。 最も近いチュートリアルはhttp://leafletjs.com/examples/crs-simple/crs-simple.htmlです。 やや難解な話題なので、指導を期待していました。 次回はStackoverflowで質問します。
CRS.Simpleを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;
}
CRS.Simpleではinfinite
がtrueに設定されているため、 y
が反転することはありません。 CRS.Simpleのカスタムコピーをinfinite = falseで作成することで、私の状況にうまくいきました。