OpenLayers는 ESRI의 ArcGIS 서버에서 제공하는 다양한 지도 서비스를 활용할 수 있는데요. 그 중 Tiled REST MapService를 하나의 레이어로 추가해 보는 예제를 살펴보겠습니다. 아래의 페이지는 오픈 스트리트맵을 첫번째 레이어로 하고, 그 위에 ArcGIS의 REST MapService에서 제공하는 레이어를 중첩하였습니다.
위의 페이지에 대한 코드를 살펴보겠습니다. 먼저 필요한 라이브러리와 스타일시트에 대한 링크입니다.
그리고 UI인데요. 앞서 실행 페이지를 보면 지도 하나만 똭! 있습니다. 즉, 아래처럼 div 태그 하나만 있습죠.
자, 이제 이 div에 걸 마술의 주문 코드를 살펴보겠습니다.
주요 코드만을 설명드리면, 먼저 ArcGIS MapService에서 제공하는 서비스 URL이 필요한데요. 우리가 ArcGIS를 설치하고 지도를 설정할 시간이… 못하는게 절대 아니고 시간이 없으므로 ArcGIS Online에서 제공하는 URL을 사용하겠는데, 바로 3번 코드의 url 변수에 할당된 문자열이 ArcGIS Online에서 제공하는 url입니다. 이 url 변수는 10번 코드에서 ol.layer.Tile 객체를 생성하는데 사용되는데요. 보다 정확히는 이 ol.layer.Tile 객체에 데이터를 제공하는 소스(source) 생성을 위한 ol.source.TileArcGISRest 객체 생성을 위한 url 인자의 값으로 사용됩니다. 참고로 ol.layer.Tile 객체의 생성시 11번 코드의 extent는 해당 레이어의 렌더링 범위로, 이 범위를 벗어나는 경우 렌더링을 하지 않습니다. 이 extent는 옵션으로 지정하지 않아도 되며, 지정하지 않으면 범위에 따른 렌더링 여부를 결정하지 않고 항상 렌더링하려고 합니다.
아래는 위에서 설명한 전체 코드에 대한 다운로드입니다.