أنا أستخدم مربعات مخصصة تم إنشاؤها بواسطة gdal. في الإصدار 1.0 ، يتم عكس المربعات في المحور الصادي بعد التكبير. حاولت تبديل tms
من صواب إلى خطأ ، لكن لم يكن له أي تأثير. لقد جربت أيضًا ميزة {-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. بسيط. إنشاء نسخة مخصصة من CRS. بسيط مع لانهائي = خطأ هو الحيلة لموقفي.