簡単なチラシの例を作りました。それぞれに位置とズームが表示された手続き型タイルをレンダリングします。射影と CRS は、ズーム = 20 で変換せずに、lat と lng を x と y に直接マッピングするように構成されています。これは、マップをクリックして座標付きのポップアップを表示することで簡単に確認できます。
var naturalZoom = 20;
L.Projection.Direct = {
project: function (latlng) {
return new L.Point(latlng.lat, -latlng.lng);
},
unproject: function (point) {
return new L.LatLng(point.x, -point.y);
}
};
L.CRS.Wall = L.extend({}, L.CRS, {
projection: L.Projection.Direct,
transformation: new L.Transformation(1, 0, -1, 0),
scale: function (zoom) {
return Math.pow(2, zoom-naturalZoom);
}
});
var map = L.map('map', {
crs: L.CRS.Wall,
maxBounds: new L.LatLngBounds([0,0], [4096, 4096])
});
map.setView([0,0], naturalZoom);
マップの境界を制限しようとしています (jsfiddle の例のコードの 26 行目のコメントを外します) が、これによりレイヤー全体のドラッグが中断されます。カスタム crs と maxBounds で同様の問題を抱えている人はいますか? これはリーフレット ライブラリのバグでしょうか?
助けてくれてありがとう。