정보 창 표시하기
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 |