Leaflet: 1.0์—์„œ tms ์˜ต์…˜์ด ๋ฌด์‹œ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2016๋…„ 09์›” 28์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: Leaflet/Leaflet

gdal์—์„œ ์ƒ์„ฑํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ํƒ€์ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 1.0์—์„œ ํƒ€์ผ์€ ํ™•๋Œ€ ํ›„ y์ถ•์—์„œ ๋ฐ˜์ „๋ฉ๋‹ˆ๋‹ค. tms ๋ฅผ true์—์„œ false๋กœ ์ „ํ™˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ƒˆ๋กœ์šด {-y} ๊ธฐ๋Šฅ(tms ์˜ต์…˜์ด ์ œ๊ฑฐ๋œ ์ƒํƒœ)์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ "๋ณ€์ˆ˜ {-y}์— ๋Œ€ํ•ด ๊ฐ’์ด ์ œ๊ณต๋˜์ง€ ์•Š์Œ" ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ž ์‹œ ์ฃผ์œ„๋ฅผ ๋งŒ์ง€์ž‘๊ฑฐ๋ฆฌ๋‹ค๊ฐ€ 1.0 ๋Œ€์‹  0.6.4๋ฅผ ์ฐธ์กฐํ–ˆ๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

Btw, 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);

๋ชจ๋“  3 ๋Œ“๊ธ€

๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. 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;
        }

y ๋Š” CRS.Simple์—์„œ infinite ๊ฐ€ true๋กœ ์„ค์ •๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ ˆ๋Œ€ ๋ฐ˜์ „๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌดํ•œ = false๋กœ CRS.Simple์˜ ์‚ฌ์šฉ์ž ์ง€์ • ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋‚ด ์ƒํ™ฉ์— ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰