๐ŸŒท๐ŸŒผ๋ชจ์—ฌ๋ด์š” ๊ฐœ๋ฐœ์˜์ˆฒ๐ŸŒท๐ŸŒผ

openLayers4 ๋ณด์—ฌ์ค„ ์ง€๋„ ๋ฒ”์œ„ ๊ณ„์‚ฐ ๋ณธ๋ฌธ

๊ฐœ๋ฐœ/Front-end

openLayers4 ๋ณด์—ฌ์ค„ ์ง€๋„ ๋ฒ”์œ„ ๊ณ„์‚ฐ

์š”์ผ์ด 2020. 4. 11. 17:58
๋ฐ˜์‘ํ˜•

tileGrid๋กœ ๊ณ„์‚ฐ์‹œ y๊ฐ’์ด ์Œ์ˆ˜๋กœ ์žกํžˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ Math.ads(y) ๋ฅผ ์ด์šฉํ•ด y๋ฅผ ์ ˆ๋Œ€๊ฐ’์œผ๋กœ ๋ฐ”๊ฟ”์ค€ ํ›„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

 

์ œ๊ฐ€ ๋ณด์—ฌ์ค„ ์ง€๋„ ๋ฒ”์œ„๋ฅผ tileGrid ์คŒ๋ ˆ๋ฒจ 5 ๊ธฐ์ค€์œผ๋กœ mapBounds์— ๋‹ด์Šต๋‹ˆ๋‹ค

 

์คŒ๋ ˆ๋ฒจ์ด 1์”ฉ ์˜ค๋ฅผ์ˆ˜๋ก tileGrid์˜ x, y๊ฐ’์€ 2๊ฐ€ ๋” ๊ณฑํ•ด์ง‘๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ๋“ค์–ด, coordinate๊ฐ€ [5, 26, 11] ์ด๋ ‡๊ฒŒ ๋œ๋‹ค๋ฉด ์คŒ ๋ ˆ๋ฒจ์„ 1 ์˜ฌ๋ ธ์„๋•Œ [6, 52, 22] ์ด๋ ‡๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์คŒ๋ ˆ๋ฒจ์— ๋”ฐ๋ผ ๋งต์„ ๋ณด์—ฌ์ค„ extent๊ฐ’์ด ๋‹ฌ๋ผ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์คŒ๋ ˆ๋ฒจ์ด 5์—์„œ 6์ด ๋œ๋‹ค๋ฉด ์ˆœ์ „ํžˆ 2๋ฅผ ๊ณฑํ•˜๋ฉด ๋˜์ง€๋งŒ 5์—์„œ 8์ด ๋œ๋‹ค๋ฉด ์–˜๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค

 

5๋ ˆ๋ฒจ์˜ ๊ฐ’์—์„œ 2๋ฅผ ๊ณฑํ•˜๊ณ  ๊ทธ์— 2๋ฅผ ๊ณฑํ•˜๊ณ  ๋˜ 2๋ฅผ ๊ณฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 

 

๋”ฐ๋ผ์„œ, ์คŒ ๋ ˆ๋ฒจ์ด ์–ด๋–ค ์ˆ˜๊ฐ€ ๋“ค์–ด์˜ฌ์ง€ ๋ชจ๋ฅด๋‹ˆ ๊ณ„์‚ฐํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

// tileGrid [minX, minY, maxX, maxY]
// ์คŒ ๋ ˆ๋ฒจ 5 ๊ธฐ์ค€
var mapBounds = [26 , 11 , 28 , 14]; 
                      
                     // ์คŒ๋ ˆ๋ฒจ์— ๋”ฐ๋ฅธ ๋งต์„ ๋ณด์—ฌ์ค„ ๋ฒ”์œ„ ์ขŒํ‘œ ๊ณ„์‚ฐ
                     // z๋Š” ์คŒ๋ ˆ๋ฒจ
                     var pow = Math.pow(2, z-5); 
                     for (var i = 0; i < mapBounds.length; i++) { 
                             mapBounds[i] = mapBounds[i] * pow; 
                       }
Comments