728x90
반응형
구글맵을 사용하면서 좌표만 표시하는 경우가 있고
마커 클릭을 통해서 정보를 제공할때도 있다
그런경우 사용하면 된다.
해당 위치만 가는 경우
var map;
function initMap() {
var chk_lat = Number('${contents.change_y_pos}');
var chk_lng = Number('${contents.change_x_pos}');
var curLatLng = {
lng: chk_lng,
lat: chk_lat
};
map = new google.maps.Map(document.getElementById('map'), {
center: curLatLng,
scrollwheel: false,
zoom: 16
});
}
해당위치 및 주변 마커 생성
var map;
function initMap() {
var chk_lat = Number('${contents.change_y_pos}');
var chk_lng = Number('${contents.change_x_pos}');
var curLatLng = {
lng: chk_lng,
lat: chk_lat
};
map = new google.maps.Map(document.getElementById('map'), {
center: curLatLng,
scrollwheel: false,
zoom: 16
});
var locations=[
['${contents.fd_name}', '${contents.change_y_pos}', '${contents.change_x_pos}', '${contents.fd_tel}','${contents.fd_road_addr}','${contents.pk_idx}','Y']
<c:if test="${!empty l_list }">
<c:forEach var="item" items="${l_list}" varStatus="status">
, [ '${item.fd_name}', '${item.change_y_pos}', '${item.change_x_pos}', '${item.fd_tel}', '${item.fd_road_addr}', '${item.pk_idx}','Y']
</c:forEach>
</c:if>
];
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locations.length; i++) {
if(i==0){
marker = new google.maps.Marker({
id:i,
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map,
icon: {
url: "/resources/img/gogole/blue-dot.png"
}
});
}else{
marker = new google.maps.Marker({
id:i,
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map,
icon: {
url: "/resources/img/gogole/yellow-dot.png"
}
});
}
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
var temp_contents = "";
var temp_chk_state = locations[i][6];
if(temp_chk_state == 'Y'){
temp_contents += "<a href=\"/detail_view.do?service_no=${service_no}&seq="+locations[i][5]+"\">";
temp_contents += "<span id=\"sel_hospital\">";
temp_contents += (locations[i][0]);
temp_contents += "</span>";
temp_contents += "<br/>";
temp_contents += (locations[i][3])+"<br/>";
temp_contents += (locations[i][4])+"<br/>";
temp_contents += "<a href=\"/detail_view.do?service_no=${service_no}&seq="+locations[i][5]+"\">";
temp_contents += "<span id=\"sel_hospital_detail\" style=\"cursor:pointer;\">상세보기</span>";
temp_contents += "</a>";
}else{
temp_contents += "<span id=\"sel_hospital\">";
temp_contents += (locations[i][0]);
temp_contents += "</span>";
}
infowindow.setContent(temp_contents);
infowindow.open(map, marker);
}
})(marker, i));
if(marker){
marker.addListener('click', function() {
map.setZoom(15);
map.setCenter(this.getPosition());
});
}
}
}
var locations은 배열로 데이터 저장 후 마커 정보 표시할때 사용한다.
728x90
반응형
'Dev > Javascript&Jquery' 카테고리의 다른 글
모바일 바코드 스캔 (0) | 2022.05.10 |
---|---|
AJAX 이용시 상위 엘리먼트 접근 방법 (0) | 2020.07.16 |
IP를 통한 위치 좌표 코드 받기 (0) | 2020.07.16 |
Javascript Cookie (0) | 2020.07.09 |