Maps Engine Layers

Google Maps에서 사용할 수 있는 기능들은 크게 “서비스”와 “라이브러리”로 나눌 수 있습니다.

서비스는 Directions, Distance Matrix, Elevation, Geocoding, Maximum Zoom Imagery, Street View 로 구성되고, 라이브러리는 Adsense, Drawing, Geometry, Panoramio, Places, Visualization, Weather등이 있습니다.
2013년 6월에 발표한 새로운 라이브러리인 Map Engine Layers에 대해서 간단히 살펴보겠습니다.

Google Map Engine은 구글이 계속하여 기능을 강화하고 확장하고 있는 제품으로 사용자의 다양한 포맷 GIS데이터를 구글의 Infrastructure에 업로드 하고 조회할 수 있는 클라우드기반 GIS데이터 관리 플랫폼입니다.  데이터의 유형은 점, 선, 면 데이터를 올리면 해당 레이어를 조회하는 것이 전부였지만, 이 데이터를 구글맵위에 Overlay할 수 있는 기능이 기본으로 제공되지는 않았습니다.

그러나,  Google Maps visualization Library는 MapsEngineLayer 와 DynamicMapsEngineLayer 를 제공하여 Google Map Engine에 업로드 된 벡터 데이터를 Google Maps JavaScript API v3 application에 Import시킬 수 있는 기능을 제공해줍니다.
1) MapsEngineLayer

map-enging1Tile server-side 환경을 만들고 타일데이터를 클라이언트에게 전달합니다. 벡터데이터를 올리면 타일로 만들어줘 정적인 상태로 만들어 준다는 의미입니다. 구글지도상에서 Interactive하게 조회 해볼 수는 없지만, 정적이고, 변화가 적은 컨텐츠 그리고 성능을 빨리 하고 싶을 때 활용할 수 있습니다.
2) DynamicMapsEngineLayer

map-enging2이 클래스는 벡터데이터를 클라이언트에 반환해줍니다. 벡터데이터를 핸들링하기 때문에 벡터의 스타일링에 변화를 줄 수 있습니다.

MapsEngineLayer와 비교를 해보면, 마우스를 폴리곤 데이터에 갔다 대었을때 색상이 빨간색으로 변했음을 볼 수 있습니다.

 

그럼 이 기능을 사용하기 위한 방법은 무엇일까요? 개발, 세팅하는 순서는 아래와 같습니다.

  1. Loading the visualization library(라이브러리 로딩)
  2. Congratulating API access to your layers
  3. The layer constructor
  4. Layer option 설정
  5. Retrieving feature information from Google Maps Engine
  6.  Getting and setting feature styles
  7. Authentication in the Maps Engine Layer

 

1) 라이브러리 로딩하는 법

<script type="text/javascript"
  src="http://maps.googleapis.com/maps/api/js?libraries=visualization&key=YOUR_API_KEY&sensor=true_or_false">
</script>

2) 레이어 접근을 위한 API설정

API 접근은 Google Map Engine의 컨트롤 리스트에서 가능합니다. 다른 방법을 제시하기도 합니다.

  • Using the map’s settings. If you’re specifying a layer by its mapId and layerKey, the map’s access control list applies to the map’s layers.
  • Using the layer’s API access setting. When specifying a layer using its layerId, the layer’s API access setting controls access.

3) layer생성자

    앞서 살펴 보았듯이

MapsEngineLayer

     또는

DynamicMapsEngineLayer

    오브젝트에 의해서 레이어가 생성됩니다.
  • var layer = new google.maps.visualization.MapsEngineLayer({ options });
  • var dynamicLayer = new google.maps.visualization.DynamicMapsEngineLayer({ options });

4) 레이어 옵션 설정

    mapid, layerkey,clickable등의 옵션을 설정할 수 있습니다.

5) 이벤트 설정

  • MapsEngineLayer 사용가능 이벤트
- click, properties_changed, status_changed 이벤트 가능
  • DynamicMapsEngineLayer
- mouse event,feature id, LatLng등

6) Feature 스타일 설정

  • fillColor and fillOpacity
  • strokeColorstrokeOpacity, and strokeWidth
  • iconImageiconClipiconAnchoriconSize, and iconOpacity
  • zIndex

7) 인증

OAuth 2.o

등의 기능을 활용을 해 볼 수 있습니다.