Hamutaro - Hamtaro 4

Web/OpenLayers

[OpenLayers] ์ง€๋„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ OpenLayers์˜ ๊ธฐ๋ณธ ๊ฐœ๋…

carsumin 2023. 3. 23. 21:05

 

 

OpenLayers ์ฃผ์š”๊ฐ์ฒด

 

1. Map

OpenLayers์˜ ํ•ต์‹ฌ ๊ฐ์ฒด๋กœ ์ง€๋„๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์—ฌ๋Ÿฌ ๋ ˆ์ด์–ด, ์†Œ์Šค ๋“ฑ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ํ™”๋ฉด์— ์ง€๋„ ํ‘œ์‹œํ•จ

 

์ฃผ์š” ์†์„ฑ ๋ฐ ๋ฉ”์†Œ๋“œ

- target : ์ง€๋„๊ฐ€ ๋žœ๋”๋ง ๋  HTML ์š”์†Œ์˜ ID
- layers : ๋งต์— ์ถ”๊ฐ€๋˜๋Š” ๋ ˆ์ด์–ด์˜ ๋ฐฐ์—ด
- view : ์ง€๋„์˜ ์ดˆ๊ธฐ ์ค‘์‹ฌ์ ๊ณผ ํ™•๋Œ€ ์ˆ˜์ค€์„ ์ •์˜ํ•˜๋Š” View ๊ฐ์ฒด
- addLayer() : ์ง€๋„์˜ ๋ ˆ์ด์–ด์— ์ƒˆ ๋ ˆ์ด์–ด๋ฅผ ์ถ”๊ฐ€
- getView() : ํ˜„์žฌ ๋งต์˜ View ๊ฐ์ฒด ๋ฐ˜ํ™˜

 

2. View

์ง€๋„์˜ ์‹œ๊ฐ์  ํ‘œํ˜„ ์ œ์–ด

์ง€๋„์˜ ์ค‘์‹ฌ์ , ํ™•๋Œ€/์ถ•์†Œ ๋ ˆ๋ฒจ, ํšŒ์ „ ๋“ฑ์„ ์„ค์ •

 

์ฃผ์š” ์†์„ฑ ๋ฐ ๋ฉ”์†Œ๋“œ

- center : ์ง€๋„์˜ ์ค‘์‹ฌ์  ์ขŒํ‘œ
- zoom : ์ดˆ๊ธฐ ํ™•๋Œ€/์ถ•์†Œ ๋ ˆ๋ฒจ
- rotation : ์ง€๋„์˜ ํšŒ์ „ ๊ฐ๋„
- setCenter(coordinate) : ์ง€๋„์˜ ์ค‘์‹ฌ์  ์„ค์ •
- setZoom(zoomLevel) : ํ™•๋Œ€/์ถ•์†Œ ๋ ˆ๋ฒจ ์„ค์ •

 

 

3. Layer

์ง€๋„์— ํ‘œ์‹œ๋˜๋Š” ๋ฐ์ดํ„ฐ ์ •์˜

 

Layer ์ข…๋ฅ˜

- VectorLayer : Vector ๋ฐ์ดํ„ฐ๋ฅผ ์ง€๋„์— ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋จ
- TileLayer : Tile ์ด๋ฏธ์ง€๋ฅผ ์ง€๋„๋กœ ๋กœ๋“œํ•˜์—ฌ ๋ฐ์ดํ„ฐ ํ‘œ์‹œ

 

 

4. Source

Layer์˜ ๋ฐ์ดํ„ฐ Source๋กœ ์ง€๋„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์—ญํ• 

 

Source ์ข…๋ฅ˜

- VectorSource : Vector ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์†Œ์Šค
- TileSource : Tile ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œ, OSM ํƒ€์ผ์„ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ ์‚ฌ์šฉ๋จ

 

 

5. Feature

์ง€๋„์— ํ‘œ์‹œ๋  ๊ฐœ๋ณ„์ ์ธ ์š”์†Œ๋กœ Feature๋Š” ์ , ์„ , ๋ฉด ๋“ฑ์˜ ์ง€๋ฆฌ์  ๊ฐ์ฒด๋ฅผ ๋‚˜ํƒ€๋ƒ„

 

์ฃผ์š” ์†์„ฑ ๋ฐ ๋ฉ”์†Œ๋“œ

- geometry : Feature์˜ ์ง€๋ฆฌ์  ํ˜•ํƒœ๋ฅผ ์ •์˜
- setProperties(properties) : Feature์— ์†์„ฑ์„ ์„ค์ •
- get(propertyName) : ํŠน์ • ์†์„ฑ ๊ฐ’์„ ๊ฐ€์ ธ์˜ด

 

 

6. Geometry

Feature์˜ ์ง€๋ฆฌ์  ๋ชจ์–‘์„ ์ •์˜

๋‹ค์–‘ํ•œ ํ˜•ํƒœ์˜ ์ง€๋ฆฌ์  ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์›ํ•จ

 

์ฃผ์š” ํด๋ž˜์Šค

- Point : ํ•˜๋‚˜์˜ ์ ์„ ์ •์˜
- LineString : ์„ ์„ ์ •์˜
- Polygon : ํด๋ฆฌ๊ณค(๋ฉด)์„ ์ •์˜

 

 

7. Style

์ง€๋„์˜ Feature ๋˜๋Š” Layer์— ๋Œ€ํ•œ ์‹œ๊ฐ์  ์Šคํƒ€์ผ์„ ์ •์˜

Point, LineString, Polygon์— ๋Œ€ํ•œ ์Šคํƒ€์ผ์„ ์ •์˜ ๊ฐ€๋Šฅ

 

์ฃผ์š” ํด๋ž˜์Šค

- Style : ์Šคํƒ€์ผ์„ ์ •์˜ํ•˜๋Š” ๊ธฐ๋ณธ ํด๋ž˜์Šค
- Fill : ํด๋ฆฌ๊ณค์˜ ์ฑ„์šฐ๊ธฐ ์ƒ‰์ƒ ์ •์˜
- Stroke : ์„ ์˜ ์ƒ‰์ƒ๊ณผ ๋‘๊ป˜๋ฅผ ์ •์˜
- Circle : ์ ์˜ ์Šคํƒ€์ผ์„ ์›ํ˜•์œผ๋กœ ์ •์˜

 

 

8. Interaction

์‚ฌ์šฉ์ž๊ฐ€ ์ง€๋„์™€ ์ƒํ˜ธ์ž‘์šฉ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ

 

์ฃผ์š” ํด๋ž˜์Šค

- DragPan : ๋“œ๋ž˜๊ทธ๋ฅผ ํ†ตํ•ด ์ง€๋„๋ฅผ ์ด๋™
- MouseWheelZoom : ๋งˆ์šฐ์Šค ํœ ๋กœ ์ง€๋„๋ฅผ ํ™•๋Œ€/์ถ•์†Œ
- Select : ์ง€๋„์˜ ํŠน์ • Feature ์„ ํƒ

 

 

9. Control

์ง€๋„์˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์š”์†Œ๋ฅผ ์ •์˜

 

์ฃผ์š” ํด๋ž˜์Šค

- Zoom : ์ง€๋„์— ํ™•๋Œ€/์ถ•์†Œ ๋ฒ„ํŠผ ์ถ”๊ฐ€
- ScaleLine : ์ง€๋„์— ์ถ•์ฒ™๋ฐ” ์ถ”๊ฐ€
- FullScreen : ์ „์ฒด ํ™”๋ฉด ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„ํŠผ ์ถ”๊ฐ€

 

 

10. Overlay

์ง€๋„์˜ ํŠน์ • ์œ„์น˜์— HTML ์š”์†Œ๋ฅผ ๊ณ ์ •

ํŒ์—…์ด๋‚˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์š”์†Œ๋ฅผ ํŠน์ • ์ขŒํ‘œ์— ํ‘œ์‹œ

 

์ฃผ์š” ์†์„ฑ ๋ฐ ๋ฉ”์†Œ๋“œ

- position : ์˜ค๋ฒ„๋ ˆ์ด ์œ„์น˜ ์ •์˜
- element : ์˜ค๋ฒ„๋ ˆ์ด๋กœ ํ‘œ์‹œํ•  HTML ์š”์†Œ
- setPosition(coordinate) : ์˜ค๋ฒ„๋ ˆ์ด์˜ ์œ„์น˜๋ฅผ ์„ค์ •

 

 

OpenLayers ์ฃผ์š”๊ฐ์ฒด ๊ทœ๋ชจ ๋น„๊ต

 

  • Map > Layer > Source > Feature