coding/JS

네이버 지도 API

JIN_Coder 2022. 7. 28. 12:18

네이버 지도 API 사용하기

네이버에서 제공하는 네이버 지도 오픈 API

 

플랫폼에서 로그인 후 어플리케이션에서 map으로 들어가거나 아래 링크 로 들어가기

// 네이버 클라우드 플랫폼
https://www.ncloud.com/

// 네이버 지도 API링크
https://www.ncloud.com/product/applicationService/maps

이용 시작하기 => 어플리케이션 등록

설정 입력하기

 - 어플리케이션 이름

- Maps : Web Dynamic Map와 Geocoding 체크

 - Web 서비스 URL : http://localhost:5000 입력 후 '+ 추가' 버튼 클릭(추가한 사이트에서만 API사용 가능)

 - 입력 완료 후 '등록' 클릭

코드 작업전 설정 완료!

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport"
              content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
        <title>간단한 지도 표시하기</title>
        <script type="text/javascript"
                src="https://openapi.map.naver.com/openapi/v3/maps.js?ncpClientId=YOUR_CLIENT_ID"></script>
        <script src=" https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

        <style>
            #map {
                width: 100%;
                height: 400px;
            }
        </style>

        <script>
            $(document).ready(function () {
                let map = new naver.maps.Map('map', {
                    center: new naver.maps.LatLng(37.4981125, 127.0379399),
                    zoom: 10
                });
            })
        </script>
    </head>
    <body>
        <div id="map"></div>
    </body>
</html>

※ 네이버 지도 관련 자바스크립트 파일 주소 중 YOUR_CLIENT_ID 부분에 콘솔에서 확인한 인증 정보를 넣어야합니다.

설정완료하고 내가 만든 이름 아래 인증정보를 누르면 CLIENT_ID 가 있음 그걸 넣어주어야함

지도의 확대 축소 버튼

let map = new naver.maps.Map('map', {
    center: new naver.maps.LatLng(37.4981125, 127.0379399),
    zoom: 10,
    
    // 아래부분이 확대 축소 버튼
    zoomControl: true,
    zoomControlOptions: {
        style: naver.maps.ZoomControlStyle.SMALL,
        position: naver.maps.Position.TOP_RIGHT
    }
    //
});

지도에 마커 띄우기

지도에 마커를 띄우기 위해서는 marker 오브젝트를 만들어주어야 함

marker를 얹을 지도(map)와 경위도 좌표를 명시

let marker = new naver.maps.Marker({
    position: new naver.maps.LatLng(37.4981125, 127.0379399),
    map: map
    
    // 마커 이미지 바꾸기
    icon: "{{ url_for('static', filename='rtan_heart.png') }}"
});

정보창 띄우고 닫기

let infowindow = new naver.maps.InfoWindow({
    content: `<div style="width: 50px;height: 20px;text-align: center"><h5>안녕!</h5></div>`,
});


//마커를 누를때 마다 정보창 띄우고 / 닫기
naver.maps.Event.addListener(marker, "click", function () {
    console.log(infowindow.getMap()); // 정보창이 열려있을 때는 연결된 지도를 반환하고 닫혀있을 때는 null을 반환
    if (infowindow.getMap()) {
        infowindow.close();
    } else {
        infowindow.open(map, marker);
    }
});

 

 

이정도면 기본적인 지도 API 사용은 가능할것 같다

네이버 지도 기술문서

https://navermaps.github.io/maps.js.ncp/docs/

 

 

 

'coding > JS' 카테고리의 다른 글

배열과 유사 배열 객체  (0) 2022.08.01
js 객체 비구조화 할당  (0) 2022.07.29
rest API PUT/PATCH/POST  (0) 2022.07.27
for in / for of  (0) 2022.07.27
slice()와 splice() 차이  (0) 2022.07.19