본문 바로가기
Java/ETC

OpenLayers.Layer.WMS 사용법 (feat.GeoServer)

by 놀러와요 2019. 9. 10.
반응형

개발 환경은 다음과 같습니다.

 

OpenLayers 2.x

 

GeoServer 2.7.0

 

PostGIS 2.0

 

OpenLayers 에서 제공하는 WMS 객체의 레퍼런스는 링크를 참고해 주세요.

 

 

WMS 객체의 생성자는 다음과 같습니다.

 

?

1

2

3

4

5

6

var wms = OpenLayers.Layers.WMS(

        레이어이름,  //지도에서 사용될 이름입니다.

        요청주소,       //GeoServer 의 주소입니다.

        { 파라미터 },   //실제 레이어명, 포맷 등..

        { 옵션 }      //버전, 스타일 등..

);

 

간단하지만 유의하셔야 할 점이 한가지 있습니다.

 

OpenLayers 에서는 최소 한가지 이상의 기본 레이어가 필요합니다.

 

그 옵션은 isBaseLayer(boolean) 라는 옵션이구요.

 

객체 생성시 { 옵션 } 부분에 꼭 넣어주세요.

 

예) isBaseLayer : true

 

 

다음은 잘(?)정리된 예시 코드입니다.

 

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

var wms = OpenLayers.Layers.WMS(

        "WMS 레이어",

        "http://127.0.0.1:8080/geoserver/wms",

        {

            layers: ["GeoServer에 등록된 레이어명"],

            format: "image/png",

            transparent: true

        },

        {

            version: "1.3.0",

            singleTile: true,

            isBaseLayer: true

        }

);

 

그리고 WMS 객체를 생성하셨으면 지도에 넣어줍니다.

 

?

1

map.addLayer(wms);

 

자 이제 지도에 잘 나오는지 확인해 주세요. :)

 

잘 안나오시면 증상을 이야기해주세요.

 

최대한 성심 성의껏 답변 드리겠습니다.

 

그리고 OpenLayers 를 사용함에 있어 중요한 부분이 있습니다.

 

레이어, 컨트롤 등. OpenLayers 에서 사용될 객체들은 개별적으로 변수로 관리하시길 권장합니다.

 

?

1

2

3

4

5

6

map.addLayer(new OpenLayers.Layers.WMS(

        레이어이름,

        요청주소,

        { 파라미터 },

        { 옵션 }

));

 

위와 같이 바로 WMS 객체를 넣을 수 있습니다.

 

그러나 그 이후에 WMS 객체를 관리하려면..

 

하다못해 레이어를 끄려면..

 

map 객체에서 등록된 레이어를 쫙 훓어가며 WMS 객체를 찾아 관리해야합니다.

 

아니면 이름이나 class 명으로 찾아야 하지요..

 

당연한 말씀이지만 추후에 코드도 길어지고 관리하기가 매우 힘들어 집니다.

 

 

출처: http://annotations.tistory.com/76 [Annotation]

반응형

'Java > ETC' 카테고리의 다른 글

[JAVA] 예약어 정리  (0) 2019.09.16
Could not clean server of obsolete files: Content is not allowed in prolog.[오류 해결법]  (0) 2019.09.10
SimpleDateFormat  (0) 2019.09.10
JAVA 관련 기본 지식  (0) 2019.09.06
자바(JAVA) 에러코드  (0) 2019.09.06