차근차근/JAVA Script

네이버 지도 api v3 적용

예쁜꽃이피었으면 2017. 2. 22. 10:06



정보 창 표시하기

https://navermaps.github.io/maps.js/docs/tutorial-1-infowindow-simple.example.html



<script type="text/javascript" src="https://openapi.map.naver.com/openapi/v3/maps.js?clientId=${naverMapApiKey}"></script>




<div id="careerMap" style="width:100%;height:180px;"></div>





var position = new naver.maps.LatLng($("#lat").val(),$("#lon").val());

var map = new naver.maps.Map('careerMap',{

  center: position,

  zoom: 12

});

if($("#lat").val() != '37.56661' && $("#lon").val() != '126.978388'){

var markerOptions = {

position : position,

map : map ,

icon : {

  url: 'http://static.naver.net/maps/v3/pin_default.png',

      size: new naver.maps.Size(22, 35),

      origin: new naver.maps.Point(0, 0),

      anchor: new naver.maps.Point(11, 35)

}

};

var marker = new naver.maps.Marker(markerOptions);

var infowindow = new naver.maps.InfoWindow({ content: $("#Name").val() });

naver.maps.Event.addListener(marker, "click", function(e) {

    if (infowindow.getMap()) {

        infowindow.close();

    } else {

        infowindow.open(map, marker);

    }

});


infowindow.open(map, marker);


}



다수의 마커에 이벤트 핸들러 사용하기

https://navermaps.github.io/maps.js/docs/tutorial-marker-viewportevents.example.html



<script type="text/javascript" src="https://openapi.map.naver.com/openapi/v3/maps.js?clientId=${naverMapApiKey}"></script>


<div id ="map" style="width:100%;height:250px;frameborder:0px;border:0px"></div>

<script type="text/javascript">

var m = new Array();

var t = new Array();

<c:set var="i" value="0" />

<c:choose>

<c:when test="${!empty result}">

<c:forEach items="${result}" var="result">

m[${i}] = new naver.maps.LatLng(${result.lat},${result.lon});

t[${i}] = '${result.name}';

<c:set var="i" value="${i+1}" />

</c:forEach>

</c:when>

<c:otherwise>

m[0] = new naver.maps.LatLng(37.56661, 126.978388);

t[0] = '검색결과가 없습니다.'

</c:otherwise>

</c:choose>

//var defaultLevel = 7;

//var map = new naver.maps.Map('map',{

var map = new naver.maps.Map(document.getElementById('map'), {

//  center : new naver.maps.LatLng(37.566285,126.977960),

center : new naver.maps.LatLng(m[0]), 

zoom : 6,

   size : new naver.maps.Size(890, 250)

});

    var markers = [],infoWindows = [];


for (var ii=0; ii<m.length; ii++) {

    var icon = {

            url: 'http://static.naver.net/maps/v3/pin_default.png',

            size: new naver.maps.Size(24, 37),

            anchor: new naver.maps.Point(12, 37),

            origin: new naver.maps.Point(ii * 29, 0)

        },

        marker = new naver.maps.Marker({

            position: m[ii],

            map: map,

            icon: icon,

            shadow: {

                url: 'http://static.naver.net/maps/v3/pin_default.png',

                size: new naver.maps.Size(40, 35),

                origin: new naver.maps.Point(0, 0),

                anchor: new naver.maps.Point(11, 35)

            }

        });


    var infoWindow = new naver.maps.InfoWindow({ content:t[ii] });

    

    markers.push(marker);

    infoWindows.push(infoWindow);

}

// 해당 마커의 인덱스를 seq라는 클로저 변수로 저장하는 이벤트 핸들러를 반환합니다.

function getClickHandler(seq) {

    return function(e) {

          var marker = markers[seq];

          var infoWindow = infoWindows[seq];


        if (infoWindow.getMap()) {

            infoWindow.close();

        } else {

            infoWindow.open(map, marker);

        }

    }

}


for (var i=0; i<markers.length; i++) {

    naver.maps.Event.addListener(markers[i],  'click', getClickHandler(i));

}


</script>



반응형

'차근차근 > JAVA Script' 카테고리의 다른 글

JSON-P 사용하기  (0) 2018.01.03
일치하는 글자에 태크넣기..  (0) 2017.10.26
JavaScript Strings  (0) 2016.02.15
JavaScript Events  (0) 2016.02.15
JavaScript Scope  (0) 2016.02.15