다음 지도 클릭 이벤트

다음 지도 클릭 이벤트

QA

다음 지도 클릭 이벤트

본문

다음 지도에 업체들 정보를 불러오는 소스입니다.

현재 지도에 정상적으로 나타납니다.

 

다만..클릭시 업체 정보가 잘 나오고 있는데 다른 업체를 클릭하면 기존업체와 새로운 업체정보가 나옵니다. 클릭할수록 계속 추가가 되고요...

 

새로클릭하면 기존업체 정보는 사라질수 있도록 고수님들 부탁드립니다.

아래 클릭이벤트에서 하면 되는 것으로 아는데...잘 모르겠네요...

 

 


<script type="text/javascript">
window.onload = function() {
  
 // 지도의 중심
 var position = new daum.maps.LatLng(35.8194488476, 127.106373022);
 // 기본 지도 표시
 var map = new daum.maps.Map(document.getElementById('map'), {
  center: position,
  level: 4,
  mapTypeId: daum.maps.MapTypeId.ROADMAP
 });
 
 <?php if (G5_IS_MOBILE) {?>
  /*=======================================================
 ==이 것 은 다 음 A P I 를 통 해 지 도 를 생 성 합 니 다==
 ========================================================*/
 
 // HTML5의 geolocation으로 사용할 수 있는지 확인합니다
 if (navigator.geolocation) {
  
  // GeoLocation을 이용해서 접속 위치를 얻어옵니다
  navigator.geolocation.getCurrentPosition(function(position) {
   
   var lat = position.coords.latitude, // 위도
    lon = position.coords.longitude; // 경도
   
   var locPosition = new daum.maps.LatLng(lat, lon) // 마커가 표시될 위치를 geolocation으로 얻어온 좌표로 생성합니다
   
   // 마커와 인포윈도우를 표시합니다
   geoloca(locPosition);
    
    });
  
 } else { // HTML5의 GeoLocation을 사용할 수 없을때 마커 표시 위치와 인포윈도우 내용을 설정합니다
  var locPosition = new daum.maps.LatLng(35.8194488476, 127.106373022)
  geoloca(locPosition);
 }
 
 // 지도에 마커와 인포윈도우를 표시하는 함수입니다
 function geoloca(locPosition) {
  // 지도 중심좌표를 접속위치로 변경합니다
  map.setCenter(locPosition);     
 }
 <?php }?>
 
 // 지도 콘트론 표시
 var zoomControl = new daum.maps.ZoomControl();
 map.addControl(zoomControl, daum.maps.ControlPosition.RIGHT);
 var mapTypeControl = new daum.maps.MapTypeControl();
 map.addControl(mapTypeControl, daum.maps.ControlPosition.TOPRIGHT);
 // 다중 마커와 인포윈도우 표시
 //위치 정보와 인포윈도우에 표시할 정도
 var locations = [
  <?php for ($i=0; $row_map=sql_fetch_array($map_result); $i++) {
 
   if($row_map[st_lat]){
    if($i>0) echo ",";
   ?>
    [<?php echo $row_map[st_lat]?>, <?php echo $row_map[st_lng]?>, '<div class="DaumMapsContent">' +
    '<div class="tl"><?php echo $row_map[st_company]?></div>' +
   '</div>']
   <?php }
  }?>
 ];
 for(i = 0; i < locations.length; i++) {
  // 다중 마커
  var marker = new daum.maps.Marker({
   position: new daum.maps.LatLng(locations[i][0], locations[i][1])
  });
  marker.setMap(map);
  //인포 윈도우
  daum.maps.event.addListener(marker, 'click', (function(marker, i) {
   return function() {
    var infowindow = new daum.maps.InfoWindow({
     content: locations[i][2],
     removable : true
    });
     infowindow.open(map, marker);
   }
  })(marker, i));
 
 }
};
</script>
 

이 질문에 댓글 쓰기 :

답변 1

74라인 var infowindow를 글로벌 변수로 두시고, 클릭이벤트때 제거할 수 있도록 스크립트를 수정해주셔야합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 5
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT