Maps 웹 지도를 사용하는 데 필요한 JavaScript 기반 웹 API를 설명합니다.
Item | URL |
---|---|
Map | https://kr1-maps.api.nhncloudservice.com |
JavaScript 기반 NHN Cloud Maps API를 이용해 웹 브라우저에 지도를 표시하는 방법을 설명합니다. NHN Cloud Maps API는 WGS84(EPSG:4326) 좌표를 사용합니다.
API 명 | Parameter | Returns | 설명 |
---|---|---|---|
new inavi.maps.Map(options) | options.container : string | inavi.maps.Map 지도 객체 | 지도를 표시할 DOM 엘리먼트의 ID |
options.center : LngLatLike | 지도의 중심 좌표 | ||
options.zoom : number | 지도의 레벨 | ||
options.heading : number | 북쪽을 기준으로 반시계 방향으로 회전한 각도 | ||
options.tilt : number | 지도를 눕혔을 때의 기울기 | ||
options.maxZoom : number | 최대 확대 레벨 | ||
options.hash : boolean | 주소 표시줄에 지도 정보 표시 여부 | ||
options.zoomable : boolean | 확대 가능 여부 | ||
options.draggable : boolean | 드래그 가능 여부 | ||
options.rotatable : boolean | 회전 가능 여부 | ||
options.keyboard : boolean | 키보드를 사용한 지도 이동 가능 여부 | ||
options.disableDefaultUI : boolean | 기본 컨트롤 숨김 여부 | ||
options.logoScaleControl : LogoScaleControlOptions | 로고 및 스케일 표시 컨트롤 옵션 | ||
options.compassControl : CompassControlOptions | 나침반 표시 컨트롤 옵션 | ||
options.zoomControl : ZoomControlOptions | 확대 축소 표시 컨트롤 옵션 | ||
on(eventType, listener) | eventType : string | load, zoomstart, zoom, zoomend, rotatestart, rotate, rotateend, tiltstart, tilt, tiltend, click, dblclick, mousedown, mouseup, mousemove, mouseenter, mouseleave, mouseover, mouseout, contextmenu, wheel, touchstart, touchend, touchcancel, touchmove, movestart, move, moveend, dragstart, drag, dragend |
|
listener : Function | 등록할 리스너 | ||
once(eventType, listener) | eventType : string | load, zoomstart, zoom, zoomend, rotatestart, rotate, rotateend, tiltstart, tilt, tiltend, click, dblclick, mousedown, mouseup, mousemove, mouseenter, mouseleave, mouseover, mouseout, contextmenu, wheel, touchstart, touchend, touchcancel, touchmove, movestart, move, moveend, dragstart, drag, dragend |
|
listener : Function | 등록할 리스너 | ||
off(eventType, listener) | eventType : string | load, zoomstart, zoom, zoomend, rotatestart, rotate, rotateend, tiltstart, tilt, tiltend, click, dblclick, mousedown, mouseup, mousemove, mouseenter, mouseleave, mouseover, mouseout, contextmenu, wheel, touchstart, touchend, touchcancel, touchmove, movestart, move, moveend, dragstart, drag, dragend |
|
listener : Function | 제거할 리스너 | ||
new inavi.maps.Marker(option) | option.map : Map | inavi.maps.Marker 마커 객체 | 지도 객체 |
option.icon : string | 아이콘 URL | ||
option.position : LngLatLike | 마커 생성 좌표 | ||
option.anchor : string | 좌표가 위치할 곳 top-left, top, top-right, left, center, right, bottom-left, bottom, bottom-right |
||
option.title : string | 툴팁 문자열 | ||
option.offset : Array | 픽셀 단위 오프셋 | ||
option.draggable : boolean | 드래그 가능 여부 | ||
option.zIndex : number | z-index 값 | ||
option.opacity : number | 투명도 | ||
inavi.maps.LngLat.convertToPixel(lngLat) | lngLat.lng : number | 화면 픽셀 좌표 | WGS84 경도 |
lngLat.lat : number | WGS84 위도 | ||
inavi.maps.Pixel.convertToLngLat(pixel) | pixel.x : number | 경위도 좌표 | 화면 픽셀 x 좌표 |
pixel.y : number | 화면 픽셀 y 좌표 |
<script type="text/javascript" src="https://kr1-maps.api.nhncloudservice.com/maps/v3.0/appkeys/{appkey}/maps?callback=initMap"></script>
<div id="div_map" style="width:500px; height:500px;"></div>
<script type="text/javascript">
var map;
function initMap() {
//선언한 DIV에 지도를 표출합니다.
map = new inavi.maps.Map({
container: "div_map",
center: {
lng: 127.11,
lat: 37.40
},
zoom: 12,
type: "NORMAL"
});
}
</script>
<script type="text/javascript">
// 생성된 지도 객체의 지도 Type을 변경합니다.
// 일반: NORMAL, 항공배경: SATELLITE
// 항공배경지도로 변경합니다.
window.onload = function (){
map.setType("SATELLITE");
};
</script>
<script type="text/javascript">
//지도에 move 이벤트를 등록합니다.
window.onload = function (){
map.on("move", moveHandler);
}
function moveHandler(event){
console.log("event callback!");
}
</script>
<script type="text/javascript">
//지도에 move 이벤트를 제거합니다.
window.onload = function (){
map.off("move", moveHandler)
}
</script>
<script type="text/javascript">
// 지도에 마커 객체를 추가합니다.
window.onload = function (){
var marker = new inavi.maps.Marker({
map: map,
position: {
lng: 127.11,
lat: 37.40
}
});
// 마커 객체를 이동시킵니다.
marker.setPosition({lng: 127.110513, lat: 37.402027});
}
</script>
<script type="text/javascript">
window.onload = function (){
// 화면 픽셀 좌표를 WGS 좌표로 변환합니다.
var screen_pixel = {
x: 100,
y: 100
};
var wgs84 = inavi.maps.Pixel.convertToLngLat(map,screen_pixel);
console.log(wgs84.lng);
console.log(wgs84.lat);
}
</script>
<script type="text/javascript">
window.onload = function (){
// WGS 좌표를 화면 픽셀 좌표로 변환합니다.
var wgs84 = {
lng: 127.11074994024005,
lat: 37.40215870673785
};
var screen_pixel = inavi.maps.LngLat.convertToPixel(map,wgs84);
console.log(screen_pixel.x);
console.log(screen_pixel.y);
}
</script>
// 생성된 지도 객체의 지도 스타일을 Map Studio로 작성한 스타일로 변경합니다.
<script type="text/javascript">
window.onload = function (){
// StyleJsonUrl은 Map Studio에서 스타일 배포 시 배포 코드 참조
map.setStyle("{StyleJsonUrl}");
}
</script>
// 지도 초기화 시 스타일을 적용 할 경우에는 기존 스크립트 대신 아래 스크립트를 사용합니다.
<script type="text/javascript" src="https://kr1-maps.api.nhncloudservice.com/maps/v3.0/appkeys/{appkey}/maps?callback=initMap&styleID={styleID}"></script>