देखा जा सकता है जो संक्षिप्त उत्तर है कि आप केवल ज़ूम स्तर है जिसके लिए आप का पूर्व-प्रदान की गई टाइल्स दिखा सकते हैं बनाया है। पत्रक आपके लिए मध्यस्थ ज़ूम स्तर नहीं बनाएगा।
उत्तर है कि ऐसा करने का उपयोग करने के, आप उदाहरण के लिए अपने स्वयं के सीआरएस पैमाने विधि को परिभाषित करने और इसे अपने नक्शे में पारित करने के लिए, की जरूरत है: इस उदाहरण में
L.CRS.CustomZoom = L.extend({}, L.CRS.Simple, {
scale: function (zoom) {
// This method should return the tile grid size
// (which is always square) for a specific zoom
// We want 0 = 200px = 2 tiles @ 100x100px,
// 1 = 300px = 3 tiles @ 100x100px, etc.
// Ie.: (200 + zoom*100)/100 => 2 + zoom
return 2 + zoom;
}
});
var map = L.map('map', { crs: L.CRS.CustomZoom }).setView([0, 0], 0);
, मैं विस्तार किया है ताकि L.CRS.Simple
, लेकिन आप निश्चित रूप से एपीआई से किसी भी सीआरएस का विस्तार कर सकते हैं, या यहां तक कि खुद को स्क्रैच से भी बना सकते हैं।
ज़ूम कारक का उपयोग करना जिसके परिणामस्वरूप नक्शा पिक्सेल आकार होता है जो आपके टाइल्सइज़ का एक बहु नहीं है, इसका मतलब है कि आपकी दाएं/नीचे किनारे की टाइलें आंशिक रूप से आंशिक रूप से मानचित्र डेटा से भरी होंगी। इस तरह के टाइल्स का गैर-नक्शा भाग 100% पारदर्शी (या आपकी पृष्ठभूमि के समान रंग) बनाकर तय किया जा सकता है।
हालांकि, मेरी राय में, इस मामले में 100px में सबसे कम आम denominator से मिलान करने के लिए टाइल्सize सेट करने के लिए एक बेहतर विचार है। अपनी टाइल परत में tileSize
विकल्प का उपयोग करके इसे प्रतिबिंबित करना याद रखें। और, ज़ाहिर है, आप वर्तमान में उपयोग कर रहे 256x256 टाइल्स की बजाय अपनी छवि को 100x100 पिक्सेल टाइल्स में फिर से प्रस्तुत करने की आवश्यकता होगी।
एक चेतावनी, letterJS (0.5) के वर्तमान संस्करण में एक बग है जो कस्टम स्केल() विधि को काम करने से रोकता है, क्योंकि टाइललेयर क्लास को पावर-ऑफ-2 ज़ूम स्केलिंग का उपयोग करने के लिए हार्डकोड किया जाता है। हालांकि, आपको जो परिवर्तन करने की ज़रूरत है वह मामूली है और उम्मीद है कि इसे भविष्य की रिलीज में संबोधित किया जाएगा।
_getWrapTileNum: function() {
// TODO refactor, limit is not valid for non-standard projections
return Math.pow(2, this._getZoomForUrl());
},
करने के लिए:: बस से TileLayer._getWrapTileNum()
बदलने
_getWrapTileNum: function() {
return this._map.options.crs.scale(this._getZoomForUrl());
},
आप हर ज़ूम स्तर के लिए पूर्व प्रदान की गई टाइल्स है, किसी भी तरह उच्च ज़ूम स्तर टाइल्स का उपयोग करें और उन्हें पैमाने पर और उन का उपयोग कर सकते हैं पत्रक नहीं है, तो? भले ही वे थोड़ा पिक्सलेटेड हों? –