## πŸ›°οΈ 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 }) }); ``` --- ### **μ΅œμ’… κ²°κ³Ό μš”μ•½** * **μ‹œμž‘ 파일 포맷:** ECW * **μ‹œμž‘ 파일 μš©λŸ‰:** μ•½ 206MB * **λ³€ν™˜ 파일 포맷:** JPEG (.jpg) * **λ³€ν™˜ 파일 μš©λŸ‰:** μ•½ 34.4MB * **ν˜Έν™˜μ„±:** GeoServer TMS ν‘œμ€€ 및 OpenLayers μ΅œμ ν™”