본문 바로가기
IT 개발/OpenLayers

OpenLayers (지도 띄우기)

by Love of fate 2019. 8. 14.
728x90
반응형

* OpenLayers

- 웹 지도 서비스를 위한 라이브러리

- 지도를 표현하고 조작 가능. 

 

* OSM

- 오픈 스트리트 맵 

- 오픈 소스방식의 참여형 무료 지도 서비스 


<기본 지도 띄우기>


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var map = new ol.Map({
 
  target : 'map'
 
  layers : [new ol.layer.Tile ({
 
             source : new ol.source.OSM()
 
  })];
 
  view :  new ol.View ({
 
             projection : 'EPSG:4326',
 
             center : [경도, 위도], ==> ex) [127.169837.7617],
 
             zoom : 15
 
    })
 
}); 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

<지도 띄우는 순서>

1) OpenLayers를 사용하기 위한 js, css 파일 라이브러리 파일을 JSP, 또는 라이브러리에 포함시킨다.

   - JSP 파일에 라이브러리 추가 

     <link rel="stylesheet" href="./GIMap/Theme/default/style.css" type = "text/css"/> 등등 

1) 지도가 띄워질 영역을 div로 생성하여 target으로 잡는다. (<div id= 'map'>)

3) 위와 같은 소스를 작성한다. 


<소스 코드 설명>

* ol.Map : 지도는 OpenLayers의 핵심 구성 요소입니다.

              맵을 렌더링하려면 뷰(view), 하나 이상의 레이어 및(layer) 대상 컨테이너(target)가 필요

 1) target : 지도 자체의 컨테이너 또는 요소의 컨테이너입니다 id.

               ex) <div id = "map"></div>

               생성시 지정되지 않은 경우 ol.Map#setTarget 맵을 렌더링하려면 호출.

  2) layer : layer를 정의하지 않으면 레이어가없는 맵이 렌더링된다.

              레이어는 제공된 순서대로 렌더링되므로 벡터 레이어를 타일 레이어 위에 표시하려면 타일 레이어

              뒤에 와야합니다. 벡터레이어 > 타일 레이어

  3) view : 지도보기. 생성시 또는 setView를 통해 지정하지 않으면 레이어 소스를 가져 오지 않는다.

 

* ol.layer.Tile : 특정 해상도의 확대 / 축소 수준으로 구성된 격자로 미리 렌더링 된 타일 이미지를 제공하는

                    레이어 소스 용

  1) source : 이 레이어의 소스. 필수!!

 

* ol.source.OSM() : OpenStreetMap 타일 서버의 레이어 소스

 

* ol.View : ol.View 객체는지도의 간단한 2D 뷰를 나타냄.

              지도의 중심, 해상도 및 회전을 변경하기 위해 수행 할 객체

  1) ol.View : 세 가지 상태에 의해 결정된다 : center, resolution, rotation

  2) projection :  projecttion중심의 좌표계결정하고 그 단위는 해상도의 단위 (픽셀 당 투영 단위)를 결정

 

   [전지구 좌표계]

  전세계를 한번에 나타내야 할 때 많이 쓰이는 좌표계들입니다.

  *WGS84 경위도: GPS가 사용하는 좌표계 

   - EPSG:4326, EPSG:4166 (Korean 1995)

 

  *Bessel 1841 경위도: 한국과 일본에 잘 맞는 지역타원체를 사용한 좌표계

   - EPSG:4004, EPSG:4162 (Korean 1985)

 

  *GRS80 경위도: WGS84와 거의 유사

   - EPSG:4019, EPSG:4737 (Korean 2000)

 

  *Google Mercator: 구글지도/빙지도/야후지도/OSM 등 에서 사용중인 좌표계

   - EPSG:3857(공식), EPSG:900913(통칭)          

 

3) center : 뷰의 초기 중심. 중심 좌표계는 projection옵션으로 지정되며 기본값은 undefined.

              레이어 소스를 설정하지 않으면 지도를 노출시키지 않음.

위도 : Latitude, 경도 : Longitude
openlayers는 경도, 위도 순으로 좌표를 입력한다.
center : [data.wgs84_lon, data.wgs84_lat] : 경도, 위도 

4) zoom : 뷰의 초기 해상도를 계산하는 데 사용되는 줌 레벨.


* 지도위에 Element를 띄울 시 주의사항 

1) 지도를 띄운 Map element(객체) 안에  div, talbe 등 무엇인가를 작성하면 안된다. 

  - <div id="map"></div>는 오로지 지도를 띄우는 용도.

2) Map 위에 element를 만들고 CSS를 아래와 같이 설정해주면 nav와 같은 화면을 구현할 수 있다. 

   Position : absolute; 

   z-index : 999;

   border : 1px solid;

   padding : 10px;

   margin :10px;

 

* 지도 웹 화면 전체 띄우기

1) 지도를 띄울 <div id= "map"></div>를 만들고 아래와 같이 CSS를 설정

   margin = 0px;

   padding = 0px;

   width = 100%;

   height = 100%;

 

 

 

   

  

 

 

728x90
반응형

'IT 개발 > OpenLayers' 카테고리의 다른 글

OpenLayers (Mask Layer)  (0) 2020.01.17
OpenLayers 기본  (0) 2020.01.16
OpenLayers (다중 마커 띄우기)  (0) 2020.01.13
openLayers Vworld / EPSG : 3857 관련  (0) 2019.12.23
OpenLayers (하나의 마커 띄우기)  (0) 2019.09.01