## ๐Ÿ›ฐ๏ธ ECW to JPEG TMS ํƒ€์ผ ๋ณ€ํ™˜ ๊ฐ€์ด๋“œ ### ๊ฐœ์š” * **์›๋ณธ ๋ฐ์ดํ„ฐ:** ECW (EPSG:5187 - ์ค‘๋ถ€์›์  2010) * **๋ณ€ํ™˜ ๋ชฉํ‘œ:** Web Mercator (EPSG:3857) ๊ธฐ๋ฐ˜ JPEG ํƒ€์ผ * **์„œ๋น„์Šค ํ™˜๊ฒฝ:** GeoServer + OpenLayers (TMS ๋ฐฉ์‹) --- ### **Step 0. ์›๋ณธ ์ขŒํ‘œ๊ณ„ ํ™•์ธ (gdalinfo)** ์›๋ณธ ํŒŒ์ผ์˜ ํˆฌ์˜ ์ •๋ณด๊ฐ€ **EPSG:5187**์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ```bash gdalinfo "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.ecw" ``` --- ### **Step 1. ์›น ์ง€๋„์šฉ ์ขŒํ‘œ ๋ณ€ํ™˜ (gdalwarp)** ์›น ์ง€๋„์˜ ํ‘œ์ค€์ธ `EPSG:3857`์œผ๋กœ ํˆฌ์˜๋ฒ•์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ๋ณ€ํ™˜ ๋Œ€์‹  `VRT`(๊ฐ€์ƒ ๋ฐ์ดํ„ฐ์…‹) ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์†๋„๋ฅผ ๋†’์ด๊ณ  ๋ถˆํ•„์š”ํ•œ ์ค‘๊ฐ„ ํŒŒ์ผ ์ƒ์„ฑ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ```bash gdalwarp -of VRT -s_srs EPSG:5187 -t_srs EPSG:3857 ^ "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.ecw" ^ "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.vrt" ``` --- ### **Step 2. ๋ฐด๋“œ ์ถ”์ถœ ๋ฐ ๋ฐ์ดํ„ฐ ์ •๊ทœํ™” (gdal_translate)** ECW ํŒŒ์ผ์ด 4๋ฐด๋“œ(RGB + Alpha ๋“ฑ)์ธ ๊ฒฝ์šฐ, JPEG ํƒ€์ผ ์ƒ์„ฑ์„ ์œ„ํ•ด ๋ช…์‹œ์ ์œผ๋กœ 3๊ฐœ ๋ฐด๋“œ(RGB)๋งŒ ์ถ”์ถœํ•˜๊ณ  ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ `Byte`๋กœ ๊ณ ์ •ํ•ฉ๋‹ˆ๋‹ค. ```bash gdal_translate -of VRT -b 1 -b 2 -b 3 -ot Byte ^ "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.vrt" ^ "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319_byte.vrt" ``` --- ### **Step 3. ์ตœ์ ํ™”๋œ JPEG ํƒ€์ผ ์ƒ์„ฑ (gdal2tiles)** GeoServer์˜ TMS ์„œ๋น„์Šค ๊ทœ๊ฒฉ์— ํ˜ธํ™˜๋˜๋„๋ก ํƒ€์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ```bash gdal2tiles --processes=4 ^ -z 16-21 ^ -w openlayers ^ --tmscompatible ^ --tiledriver=JPEG ^ "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319_byte.vrt" ^ "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319" ``` #### ๐Ÿ’ก ์˜ต์…˜ ํ•ต์‹ฌ ํฌ์ธํŠธ * **`--tmscompatible`**: GeoServer์˜ TMS ์—”์ง„์ด ์‚ฌ์šฉํ•˜๋Š” Y์ถ• ๋ฒˆํ˜ธ ์ฒด๊ณ„(์•„๋ž˜๊ฐ€ 0)์— ๋งž์ถฅ๋‹ˆ๋‹ค. * **`--tiledriver=JPEG`**: ์šฉ๋Ÿ‰ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด JPEG๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. (200MB ์ˆ˜์ค€์œผ๋กœ ํšจ์œจ์  ๊ด€๋ฆฌ ๊ฐ€๋Šฅ) * **`-w openlayers`**: ๋ณ€ํ™˜ ํ›„ ์ฆ‰์‹œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” OpenLayers์šฉ `openlayers.html` ํŒŒ์ผ์„ ์ž๋™ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. --- ### **Step 4. OpenLayers ์—ฐ๋™ (GeoServer ํ™œ์šฉ ์‹œ)** GeoServer์— ์ด ํƒ€์ผ์„ ๋“ฑ๋กํ•œ ํ›„ OpenLayers์—์„œ ํ˜ธ์ถœํ•  ๋•Œ, Y์ถ•์ด ๋ฐ˜์ „๋˜์–ด ๋ณด์ธ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด `{-y}` ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ `tileGrid` ์„ค์ •์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. **[OpenLayers ํ˜ธ์ถœ ์˜ˆ์‹œ ์ฝ”๋“œ]** ```javascript const tmsLayer = new ol.layer.Tile({ source: new ol.source.XYZ({ // GeoServer์˜ GWC(GeoWebCache) ๋˜๋Š” ํƒ€์ผ ๊ฒฝ๋กœ ์ž…๋ ฅ // --tmscompatible ์˜ต์…˜์„ ์ผ์œผ๋ฏ€๋กœ {-y}๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Œ url: 'http://your-server/tiles/UJDRN6319/{z}/{x}/{-y}.jpg', wrapX: true }) }); ``` --- ### **์ตœ์ข… ๊ฒฐ๊ณผ ์š”์•ฝ** * **ํŒŒ์ผ ํฌ๋งท:** JPEG (.jpg) * **์ด ์šฉ๋Ÿ‰:** ์•ฝ 200MB (ํ•ญ๊ณต์‚ฌ์ง„ ์คŒ 21๋ ˆ๋ฒจ ๋Œ€๋น„ ๋งค์šฐ ์šฐ์ˆ˜) * **ํ˜ธํ™˜์„ฑ:** GeoServer TMS ํ‘œ์ค€ ๋ฐ OpenLayers ์ตœ์ ํ™”