728x90
OpenLayers2에서는 basemap으로 google map을 설정할 수 있도록 지원하고 있으나
OpenLayers 3(통상 ol이라고 부르는 ol3이상의 버전)부터는 지원하지 않는다.
예를 들면 이런 식.
OpenLayers2
var map = new OpenLayers.Map('map_target_element', {
projection: 'EPSG:3857', // google map srs
layer:
new OpenLayers.Layer.Google(
"Google Streets" // the default
),
center: new OpenLayers.LonLat(x, y), // x, y coords must be epsg:3857
zoom: 5
});
Default는 google streets map이고, satellite나 hybrid map을 올리고 싶다면
type 값을 google.map.MayTypeId.SATELLITE 와 같이 주면 된다.
아래는 google physical map에 대한 예시.
new OpenLayers.Layer.Google(
"Google Physical",
{type: google.maps.MapTypeId.TERRAIN}
);
Openlayers 3 이상
그러나 ol3부터는 이와같은 내장함수를 지원하지 않고있다.
그래서 ol3부터는 TMS를 활용하면 된다.
TMS(Tile Map Service)란?
타일 맵 서비스(Tile Map Service) 또는 TMS는 오픈 소스 지리공간 재단이 개발한 타일 웹 맵 사양이다. 일반적으로 REST 원칙 충족을 시도하는 URI 구조를 요구한다. 이 TMS 프로토콜은 오픈스트리트맵에 쓰이는 매우 단순한 표준과 웹 맵 서비스 표준의 복잡성 간의 갭을 채움으로써 대체 공간 참조 시스템을 지원하면서도 타일에 대한 단순한 URL을 제공한다.
Google map 타일 서비스를 활용하고 싶다면 아래 URL을 base로 하여
원하는 레이어를 선택해서 활용하면 된다.
http://mt0.google.com/vt/lyrs=m&hl=en&x={x}&y={y}&z={z} // lyrs옵션이 layer type
- h = roads only
- m = standard roadmap
- p = terrain
- r = altered roadmap
- s = satellite only
- t = terrain only
- y = hybrid
ol3에서의 Tilemap 활용은 아래를 참고하면 된다.
// google road
var googleRoadLayer = new ol.layer.Tile({
type : 'base',
title: "Google roads",
source: new ol.source.XYZ({
projection : 'EPSG:3857',
url : 'http://mt0.google.com/vt/lyrs=m&hl=en&x={x}&y={y}&z={z}',
crossOrigin: 'anonymous'
}),
visible: true
});
Reference
728x90
728x90
'기술공부' 카테고리의 다른 글
[SW] 네트워크 패킷 분석 프로그램 WireShark 사용법 (0) | 2022.07.18 |
---|---|
[openlayers] WFS으로 호출하는 레이어의 범례를 설정해보자 (0) | 2022.06.15 |
[openlayers 3] 레이어 이벤트 핸들러 등록하기 (0) | 2022.06.14 |
[TroubleShooting] side-by-side 구성 관련 에러에 대하여. (0) | 2022.04.28 |
[방법론] 소프트웨어 개발 방법론 비교(Agile, Watarfall, Scrum) (0) | 2022.04.16 |