노빠꾸 개발일지/DAUM API

[DAUM API] DAUM 지도 API 화면띄우기, 간단한 검색 예제

No Backing 2020. 9. 30. 10:52
반응형


 

OPEN API인 다음 지도API를 간단히 사용해봤습니다.

 

우선 기본 지도 띄우기와 검색하여 마커로 위치정보를 찍는 부분까지 진행해 보겠습니다.

 

이정도까지가 지도API에 기본적인 부분이라고 생각해서 여기까지 진행했습니다.

 

이 글을 보지않아도 DAUM API센터에 설명이 무척 자세히 되어있지만, 그래도 필요하신 분은 참고가 되시면 좋겠습니다.

 

일단 API를 사용하려면 KEY를 발급받아야한다. 아래 링크에서 진행하시면 됩니다.

카카오 개발자센터 링크 : https://developers.kakao.com/

 

사이트에 들어가 로그인을 한후 내 애플리케이션을 클릭하고 들어가면 된다.

 

 

내 애플리케이션 페이지에 들어오면 앱만들기를 할 수 있다. 여기서 앱 만들기를 클릭해서 앱을 만들면 된다.

 

 

 

 

앱을 성공적으로 만들면 플랫폼을 선택해줘야 하는데, 일단 웹만 적용할 것임으로 웹만 선택하여 진행하였다.

 

아래의 이미지는 테스트용으로 간단히 만든것이라서 신경쓰지 마시고, 사용자의 환경에 맞게 세팅해주시면 될 것 같습니다.

 

 

여기까지 하면 지도 API를 사용하기 위한 준비가 끝났습니다. 이제 코드만 작성하면 되겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<body> 
    <input type="text" id="searchLoc">
    <button onclick="searchLocation();">검색</button> 
    <div id="map" style="width: 500px; height: 400px;"></div> 
</body> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=발급받은 appkey사용&libraries=services"></script> 
 
<script type="text/javascript">
 
var ps = new daum.maps.services.Places();
    //마커를 클릭하면 장소명을 표출할 인포윈도우 입니다
    var infowindow = new daum.maps.InfoWindow({zIndex:1});
    
    var container = document.getElementById('map'); //지도를 담을 영역의 DOM 레퍼런스
    var options = { //지도를 생성할 때 필요한 기본 옵션
        center: new daum.maps.LatLng(33.450701126.570667), //지도의 중심좌표.
        level: 3 //지도의 레벨(확대, 축소 정도)
    };    
    var map = new daum.maps.Map(container, options); //지도 생성 및 객체 리턴
 
    function searchLocation(){                
        // 장소 검색 객체를 생성합니다
        var loc = $("#searchLoc").val();
        ps.keywordSearch(loc, placesSearchCB); 
    }
    
    // 키워드 검색 완료 시 호출되는 콜백함수 입니다
    function placesSearchCB (data, status, pagination) {
        if (status === daum.maps.services.Status.OK) {
 
            // 검색된 장소 위치를 기준으로 지도 범위를 재설정하기위해
            // LatLngBounds 객체에 좌표를 추가합니다
            var bounds = new daum.maps.LatLngBounds();
 
            for (var i=0; i<data.length; i++) {
                displayMarker(data[i]);    
                bounds.extend(new daum.maps.LatLng(data[i].y, data[i].x));
            }       
 
            // 검색된 장소 위치를 기준으로 지도 범위를 재설정합니다
            map.setBounds(bounds);
        } 
    }
 
    // 지도에 마커를 표시하는 함수입니다
    function displayMarker(place) {
        // 마커를 생성하고 지도에 표시합니다
        var marker = new daum.maps.Marker({
            map: map,
            position: new daum.maps.LatLng(place.y, place.x) 
        });
        // 마커에 클릭이벤트를 등록합니다
        daum.maps.event.addListener(marker, 'click'function() {
            // 마커를 클릭하면 장소명이 인포윈도우에 표출됩니다
            infowindow.setContent('<div style="padding:5px;font-size:12px;">' + place.place_name + '</div>');
            infowindow.open(map, marker);
        });
    }
<script>
cs

 

UI는 신경쓰지 않고 기능만 되도록 만드는데 중점을 두었기에 이부분은 이해해주셨으면 좋겠습니다.

 

일단 기본페이지는 카카오본사 위치를 찍어놓은 듯 합니다. 거기에서 내가 원하는 곳을 검색하면

 

2번째 이미지와 같이 마커와 함께 해당위치로 지도가 이동하게된다.

 

그래서 마커들을 클릭하면 각각의 위치명이 노출되는 간단한 기능이다.

 

※ 초기 실행시 기본위치(초기 위치는 원하는 위치로도 지정가능)

 

※ 마커클릭시 각각의 위치명 노출

 

여기까지 간단한 내용인데 혹시 수정할 부분있으면 알려주시고 도움이 되셨으면 좋겠습니다.

반응형