네이버 지도맵으로 제작시문제... ㅠㅠ

네이버 지도맵으로 제작시문제... ㅠㅠ

QA

네이버 지도맵으로 제작시문제... ㅠㅠ

본문

게시판은 위 스킨을 이용하고 있습니다.

 

 

제작사이트

 

잘안되는 부분이 처음접속시 지도에 등록한 지점에 마커아이콘만 나오고 아이콘클릭시 정보가 보여지게 되는데요

전 이걸 처음접속시 아이콘클릭없이 등록한 정보가 같이 보여지게하고싶습니다

 

소스코드를 많이 여기저기 수정하면서 했지만 잘안되어 도움을 요청드립니다 ㅠ.ㅠ

 

첨부파일 기능이 없어 소스를 올릴수가없네요.. ㅠㅠ

이 질문에 댓글 쓰기 :

답변 3

아래코드를

for (var i=0, ii=markers.length; i<ii; i++) {
    naver.maps.Event.addListener(markers[i], 'click', getClickHandler(i));
}

이렇게 변경

for (var i=0, ii=markers.length; i<ii; i++) {
    infoWindows[i].open(map, markers[i]);
}

 

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

/* 
공부하는이 : 정적인손님
스킨명 : 그누보드5 용 네이버지도 v3보고 따라한 네이버맵 멀티마커 게시판 스킨 v1.0.0 PC버전
버전 : 1.0.0
공유범위 : 수정배포 적극권장

<script type="text/javascript" src=""></script>

또는 아래 $navermapkey 에 넣으면 되어요.
*/

// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$navermapkey = 'jNKuAAmfvpVKMfdaxEUO';
$colspan = 10;

if ($is_checkbox) $colspan++;
if ($is_good) $colspan++;
if ($is_nogood) $colspan++;

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
?>
< script type="text/javascript" src="<script type="text/javascript" src="<?php echo $board_skin_url ?>/MarkerOverlappingRecognizer.js"></script>

 
< /div>

<!-- 게시판 목록 시작 { -->
< div id="bo_list" style="width:100%;">


 

<div class="container">
 
   
< /div>

    <form name="fboardlist" id="fboardlist" action="./board_list_update.php" onsubmit="return fboardlist_submit(this);" method="post">
    <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
    <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
    <input type="hidden" name="stx" value="<?php echo $stx ?>">
    <input type="hidden" name="spt" value="<?php echo $spt ?>">
    <input type="hidden" name="sca" value="<?php echo $sca ?>">
    <input type="hidden" name="sst" value="<?php echo $sst ?>">
    <input type="hidden" name="sod" value="<?php echo $sod ?>">
    <input type="hidden" name="page" value="<?php echo $page ?>">
    <input type="hidden" name="sw" value="">


    <div id="map" style="width:100%;height:600px;"></div>
  


<script>
    var MARKER_ICON_URL = '<?php echo $board_skin_url ?>/img/mapicon001.png';
    var MARKER_HIGHLIGHT_ICON_URL = '<?php echo $board_skin_url ?>/img/mapicon002.png';
   
    var MARKER_SPRITE_POSITION = {
 
  <?php for ($i=0; $i<count($list); $i++) {
 $yti=($list[$i][subject]);  
 $ylink="<a href='{$list[$i]['href']}'>{$yti}</a>";
 $ylat=($list[$i][wr_3]);
 $ylng=($list[$i][wr_4]);
 ?>
 <?php if ($list[$i]['subject']){ ?>
 "<?php echo $yti?>": [<?php echo $ylat?>, <?php echo $ylng?>,"<?php echo $ylink?>"]
 <?php }?>
 <?php if ($i==count($list)-1) continue; ?>
 <?php if ($list[$i]['subject']){ ?>
 ,
 <?php } ?>
 <?php } ?>

    };
 
    var position = new naver.maps.LatLng(37.380177, 126.802934);
 
 var mapOptions = {
  //zoom: 7,
  center: position,
  mapTypeControl: true,
  mapTypeControlOptions: {
   style: naver.maps.MapTypeControlStyle.BUTTON,
   position: naver.maps.Position.TOP_LEFT
  },
  zoomControl: true,
  zoomControlOptions: {
   style: naver.maps.ZoomControlStyle.SMALL,
   position: naver.maps.Position.BOTTOM_RIGHT
  },
  scaleControl: true,
  scaleControlOptions: {
   position: naver.maps.Position.RIGHT_CENTER
  },
  logoControl: true,
  logoControlOptions: {
   position: naver.maps.Position.TOP_LEFT
  },
  mapDataControl: true,
  mapDataControlOptions: {
   position: naver.maps.Position.BOTTOM_LEFT
  }
 };

 var map = new naver.maps.Map(document.getElementById('map'),mapOptions);
 
 var bounds = map.getBounds(),
    southWest = bounds.getSW(),
    northEast = bounds.getNE(),
    lngSpan = northEast.lng() - southWest.lng(),
    latSpan = northEast.lat() - southWest.lat();
 
 var markers = [], infoWindows = [];

    var recognizer = new MarkerOverlappingRecognizer({
        highlightRect: false,
        tolerance: 15
    });
    recognizer.setMap(map);

    function highlightMarker(marker) {
        var icon = marker.getIcon();

        if (icon.url !== MARKER_HIGHLIGHT_ICON_URL) {
            icon.url = MARKER_HIGHLIGHT_ICON_URL;
            marker.setIcon(icon);
        }

        marker.setZIndex(1000);
    }

    function unhighlightMarker(marker) {
        var icon = marker.getIcon();

        if (icon.url === MARKER_HIGHLIGHT_ICON_URL) {
            icon.url = MARKER_ICON_URL;
            marker.setIcon(icon);
        }

        marker.setZIndex(100);
    }
 
 

    for (var key in MARKER_SPRITE_POSITION) {
  
  var position = new naver.maps.LatLng(MARKER_SPRITE_POSITION[key][0], MARKER_SPRITE_POSITION[key][1]);

        var marker = new naver.maps.Marker({
            map: map,
            position: position,
            title: key,
            icon: {
                url: MARKER_ICON_URL,
                size: new naver.maps.Size(50, 50),
                anchor: new naver.maps.Point(25, 25),
                origin: new naver.maps.Point(0, 0)
            },
           
            zIndex: 100
        });
  
  var infoWindow = new naver.maps.InfoWindow({
        content: '<div style="width:100px;text-align:center;padding:5px;">'+ MARKER_SPRITE_POSITION[key][2] +'</div>'
     });
 
  markers.push(marker);
  infoWindows.push(infoWindow);

  marker.addListener('mouseover', function(e) {
   highlightMarker(e.overlay);
  });
 
  marker.addListener('mouseout', function(e) {
   unhighlightMarker(e.overlay);
  });
 
  recognizer.add(marker);
  window.MARKER = marker;
 };
 
 naver.maps.Event.addListener(map, 'zoom_changed', function() {
  updateMarkers(map, markers);
 });
 
 naver.maps.Event.addListener(map, 'dragend', function() {
  updateMarkers(map, markers);
 });

 function updateMarkers(map, markers) {
  var mapBounds = map.getBounds();
  var marker, position;
  for (var i = 0; i < markers.length; i++) {
   marker = markers[i]
   position = marker.getPosition();
   if (mapBounds.hasLatLng(position)) {
    showMarker(map, marker);
   } else {
             hideMarker(map, marker);
   }
  }
 }

 function showMarker(map, marker) {
  if (marker.setMap()) return;
  marker.setMap(map);
 }

 function hideMarker(map, marker) {
  if (!marker.setMap()) return;
  marker.setMap(null);
 }
 
 function getClickHandler(seq) {
  return function(e) {
   var marker = markers[seq],
   infoWindow = infoWindows[seq];
   if (infoWindow.getMap()) {
    infoWindow.close();
   } else {
    infoWindow.open(map, marker);
   }
  }
 }

 for (var i=0, ii=markers.length; i<ii; i++) {
  naver.maps.Event.addListener(markers[i], 'click', getClickHandler(i));
 }


    var overlapCoverMarker = null;

    naver.maps.Event.addListener(recognizer, 'overlap', function(list) {
        if (overlapCoverMarker) {
            unhighlightMarker(overlapCoverMarker);
        }

        overlapCoverMarker = list[0].marker;

        naver.maps.Event.once(overlapCoverMarker, 'mouseout', function() {
            highlightMarker(overlapCoverMarker);
        });
    });

    naver.maps.Event.addListener(recognizer, 'clickItem', function(e) {
        recognizer.hide();

        if (overlapCoverMarker) {
            unhighlightMarker(overlapCoverMarker);

            overlapCoverMarker = null;
        }
    });

    map.setZoom(7);
< /script>


  <div class="search_wraps">
   <div class="container" style="text-align:center;">
    <input type="text" value="">

    <select style="display:inline-block;border:1px solid #ccc;vertical-align:middle;">
     <option>동별</option>
    </select>
    
    <select style="display:inline-block;border:1px solid #ccc;vertical-align:middle;">
     <option>업종별</option>
    </select>

    <button>검색</button>
    </div>
  </div>

 

 

소스코드입니다

답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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