다중마커 게시판 리스트에서 왜 마커가 안뜰까요..?
반응형 지도API 다중마커 게시판 펄스나인님의 스킨인데.
스크린샷처럼
게시물을 누르고 보면 위치가 잘뜨는데..
리스트에서 마커가 뜨질 않아요 왜그럴까요 ㅠ.ㅠ
답변 13개 / 댓글 6개
좋은자료 감사합니다
최근에 똑같은 형상이 있어 해결했습니다.
혹시 실행 스크립트가 head에 있는지 보세요.
만약 head에 있다면 </body>위에 넣으세요.. 그러면 오류가 사라집니다.
답변에 대한 댓글 1개
올려드린 부분이 디비의 진열값으로 노출이 되어야하는데
해당 값이 노출되지 않아서 스크립트 오류가 나는것입니다.
답변에 대한 댓글 1개
이전에 쓰던 다른 웹 호스팅서버에서는 잘 표기되네요...
웹스테이션에서 다른기능은 전부 정상작동하는데 마커만 ...문제가됩니다.
DB쪽 문제인가 싶네요 ㅠ
소스에는 문제가 없는거 같습니다. 같은 파일을 다른 계정에 업로드하니 마커가잘 표시되고있어요.
시놀로지에서 개인서버 돌리는 계정에서만 마커가 뜨지않습니다.
제대로 동작하는 서버 환경에 맞춰서 http 백엔드 서버를 아파치 2.2버전 , php 7.2 (기존 Nginx,php7.4)로 맞춰도.. 안뜨네요.. 마리아db 10을 사용하고있습니다.
디비 문제일까요? ㅠㅠ
답변에 대한 댓글 2개
다른분 댓글 답변 달다가 뜬금없이 이거때문인가 해서 추가 댓글 드립니다..
그누보드 설치하실때 테이블명 g5_ 를 다른걸로 사용하고 있지는 않으신지해서요 ㅎ
파일내 쿼리문에 테이블명 g5_write_XXX 를 쓰고있어서 못불러오는 걸수도있겠구나 싶습니다.
새해 복 많이 받으세요~
사이트를 보면 해당 스크립트가 보이지 않습니다.
echo $cnt;
정상적으로 디비 값이 리스트와 수와 같게 나오는지 확인해보세요.
만약 안나오면 위 디비 불러오는 부분이 문제인것 같습니다.
map.addControl(zoomControl, daum.maps.ControlPosition.RIGHT);
아래
<?php
$gu = str_replace("/","",$_GET['gubun']);
if($_GET['gubun']=="") {
$sql = " select * from g5_write_".$bo_table." order by wr_id asc ";
} else {
$sql = " select * from g5_write_".$bo_table." where ca_name='".$gu."' order by wr_id asc ";
}
$result = sql_query($sql);
$cnt = 0;
while ($row = sql_fetch_array($result)) {
if($row['wr_5'] && $row['wr_6']) {
$thumb = get_list_thumbnail($board['bo_table'], $row['wr_id'], $board['bo_gallery_width'], $board['bo_gallery_height'], false, true);
if($thumb['src']) {
$img_content = $thumb['src'];
}
?>
<?php if($row['wr_1'] == "markerStar1") { ?>
var imageSrc = '<?php echo $board_skin_url ?>/img/markerStar1.png',
<?php } else if($row['wr_1'] == "markerStar2") { ?>
var imageSrc = '<?php echo $board_skin_url ?>/img/markerStar2.png',
<?php } else if($row['wr_1'] == "markerStar3") { ?>
var imageSrc = '<?php echo $board_skin_url ?>/img/markerStar3.png',
<?php } else if($row['wr_1'] == "markerStar4") { ?>
var imageSrc = '<?php echo $board_skin_url ?>/img/markerStar4.png',
<?php } else if($row['wr_1'] == "markerStar5") { ?>
var imageSrc = '<?php echo $board_skin_url ?>/img/markerStar5.png',
<?php } else { ?>
var imageSrc = '<?php echo $board_skin_url ?>/img/markerStar6.png',
<?php } ?>
imageSize = new kakao.maps.Size(24, 35), // 마커이미지의 크기입니다
imageOption = {
offset: new kakao.maps.Point(12, 35)
}; // 마커이미지의 옵션입니다. 마커의 좌표와 일치시킬 이미지 안에서의 좌표를 설정합니다.
// 마커의 이미지정보를 가지고 있는 마커이미지를 생성합니다
var markerImage = new kakao.maps.MarkerImage(imageSrc, imageSize, imageOption),
markerPosition = new kakao.maps.LatLng(<?php echo $row['wr_5'] ?>, <?php echo $row['wr_6'] ?>); // 마커가 표시될 위치입니다
// 마커를 생성합니다
var marker = new kakao.maps.Marker({
position: markerPosition,
image: markerImage
});
// 마커가 지도 위에 표시되도록 설정합니다
marker.setMap(map);
// 커스텀 오버레이에 표시할 컨텐츠 입니다
var content = '<div class="wrap">' +
' <div class="info">' +
' <div class="body">' +
' <?php if($thumb['src']) { ?><a href="<?php echo G5_BBS_URL ?>/board.php?bo_table=<?php echo $bo_table ?>&wr_id=<?php echo $row['wr_id']; ?>" class="img" style="background-image:url(<?php echo $img_content ?>)">' +
' </a><?php } ?>' +
' <div class="desc" style="<?php if($thumb['src']) { ?>margin-left: 70px;<?php } else { ?>margin-left: 10px;<?php } ?>">' +
' <img src="<?php echo $board_skin_url ?>/img/close_black_24dp.svg" class="close" onclick="closeOverlay_<?php echo $row['wr_id'] ?>()" title="닫기">' +
' <div class="titles cut80"><a href="<?php echo G5_BBS_URL ?>/board.php?bo_table=<?php echo $bo_table ?>&wr_id=<?php echo $row['wr_id']; ?>"><?php echo $row['wr_subject']; ?></a></div>' +
' <div class="sub1 cut90"><?php echo $row['wr_3']; ?> <?php echo $row['wr_4']; ?></div>' +
' <?php if($row['wr_2']) { ?>' +
' <div class="sub3 cut90"><a href="tel:<?php echo $row['wr_2']; ?>"><?php echo $row['wr_2']; ?></a></div>' +
' <?php } else { ?>' +
' <div class="sub2 cut90"><a href="<?php echo $row['wr_link1']; ?>" target="_blank"><?php echo $row['wr_link1']; ?></a></div>' +
' <?php } ?>' +
' </div>' +
' </div>' +
' </div>' +
'</div>';
// 마커 위에 커스텀오버레이를 표시합니다
var position = new kakao.maps.LatLng(<?php echo $row['wr_5'] ?>, <?php echo $row['wr_6'] ?>);
// 마커를 중심으로 커스텀 오버레이를 표시하기위해 CSS를 이용해 위치를 설정했습니다
var overlay_<?php echo $row['wr_id'] ?> = new kakao.maps.CustomOverlay({
content: content,
map: map,
position: position,
yAnchor: 1
});
// 마커를 클릭했을 때 커스텀 오버레이를 표시합니다
kakao.maps.event.addListener(marker, 'click', function() {
overlay_<?php echo $row['wr_id'] ?>.setMap(map);
});
// 커스텀 오버레이를 닫기 위해 호출되는 함수입니다
function closeOverlay_<?php echo $row['wr_id'] ?>() {
overlay_<?php echo $row['wr_id'] ?>.setMap(null);
}
overlay_<?php echo $row['wr_id'] ?>.setMap(null);
<?php
$cnt++;
}
}
?>
누락되었습니다.
답변에 대한 댓글 1개
확인해보니 스크립트를 지우신것 같습니다.
마커를 출력하는 스크립트가 아예 빠져 있네요~
일부 커스텀을 하신것 같은데
제가 올린 스킨 목록페이지 에서 overlay_1 로 검색해보시면
어떤게 없는지 확인하실 수 있을것 같습니다.
https://false9.iwinv.net/bbs/board.php?bo_table=mapV2
감사합니다.
답변에 대한 댓글 1개
$gu = str_replace("/","",$_GET['gubun']);
if($_GET['gubun']=="") {
$sql = " select * from g5_write_".$bo_table." order by wr_id asc ";
} else {
$sql = " select * from g5_write_".$bo_table." where ca_name='".$gu."' order by wr_id asc ";
}
$result = sql_query($sql);
$cnt = 0;
while ($row = sql_fetch_array($result)) {
if($row['wr_5'] && $row['wr_6']) {
$thumb = get_list_thumbnail($board['bo_table'], $row['wr_id'], $board['bo_gallery_width'], $board['bo_gallery_height'], false, true);
if($thumb['src']) {
$img_content = $thumb['src'];
}
?>
<?php if($row['wr_1'] == "markerStar1") { ?>
var imageSrc = '<?php echo $board_skin_url ?>/img/markerStar1.png',
<?php } else if($row['wr_1'] == "markerStar2") { ?>
var imageSrc = '<?php echo $board_skin_url ?>/img/markerStar2.png',
<?php } else if($row['wr_1'] == "markerStar3") { ?>
var imageSrc = '<?php echo $board_skin_url ?>/img/markerStar3.png',
<?php } else if($row['wr_1'] == "markerStar4") { ?>
var imageSrc = '<?php echo $board_skin_url ?>/img/markerStar4.png',
<?php } else if($row['wr_1'] == "markerStar5") { ?>
var imageSrc = '<?php echo $board_skin_url ?>/img/markerStar5.png',
<?php } else { ?>
var imageSrc = '<?php echo $board_skin_url ?>/img/markerStar6.png',
<?php } ?>
imageSize = new kakao.maps.Size(24, 35), // 마커이미지의 크기입니다
imageOption = {
offset: new kakao.maps.Point(12, 35)
}; // 마커이미지의 옵션입니다. 마커의 좌표와 일치시킬 이미지 안에서의 좌표를 설정합니다.
// 마커의 이미지정보를 가지고 있는 마커이미지를 생성합니다
var markerImage = new kakao.maps.MarkerImage(imageSrc, imageSize, imageOption),
markerPosition = new kakao.maps.LatLng(<?php echo $row['wr_5'] ?>, <?php echo $row['wr_6'] ?>); // 마커가 표시될 위치입니다
// 마커를 생성합니다
var marker = new kakao.maps.Marker({
position: markerPosition,
image: markerImage
});
// 마커가 지도 위에 표시되도록 설정합니다
marker.setMap(map);
// 커스텀 오버레이에 표시할 컨텐츠 입니다
var content = '<div class="wrap">' +
' <div class="info">' +
' <div class="body">' +
' <?php if($thumb['src']) { ?><a href="<?php echo G5_BBS_URL ?>/board.php?bo_table=<?php echo $bo_table ?>&wr_id=<?php echo $row['wr_id']; ?>" class="img" style="background-image:url(<?php echo $img_content ?>)">' +
' </a><?php } ?>' +
' <div class="desc" style="<?php if($thumb['src']) { ?>margin-left: 70px;<?php } else { ?>margin-left: 10px;<?php } ?>">' +
' <img src="<?php echo $board_skin_url ?>/img/close_black_24dp.svg" class="close" onclick="closeOverlay_<?php echo $row['wr_id'] ?>()" title="닫기">' +
' <div class="titles cut80"><a href="<?php echo G5_BBS_URL ?>/board.php?bo_table=<?php echo $bo_table ?>&wr_id=<?php echo $row['wr_id']; ?>"><?php echo $row['wr_subject']; ?></a></div>' +
' <div class="sub1 cut90"><?php echo $row['wr_3']; ?> <?php echo $row['wr_4']; ?></div>' +
' <?php if($row['wr_2']) { ?>' +
' <div class="sub3 cut90"><a href="tel:<?php echo $row['wr_2']; ?>"><?php echo $row['wr_2']; ?></a></div>' +
' <?php } else { ?>' +
' <div class="sub2 cut90"><a href="<?php echo $row['wr_link1']; ?>" target="_blank"><?php echo $row['wr_link1']; ?></a></div>' +
' <?php } ?>' +
' </div>' +
' </div>' +
' </div>' +
'</div>';
// 마커 위에 커스텀오버레이를 표시합니다
var position = new kakao.maps.LatLng(<?php echo $row['wr_5'] ?>, <?php echo $row['wr_6'] ?>);
// 마커를 중심으로 커스텀 오버레이를 표시하기위해 CSS를 이용해 위치를 설정했습니다
var overlay_<?php echo $row['wr_id'] ?> = new kakao.maps.CustomOverlay({
content: content,
map: map,
position: position,
yAnchor: 1
});
// 마커를 클릭했을 때 커스텀 오버레이를 표시합니다
kakao.maps.event.addListener(marker, 'click', function() {
overlay_<?php echo $row['wr_id'] ?>.setMap(map);
});
// 커스텀 오버레이를 닫기 위해 호출되는 함수입니다
function closeOverlay_<?php echo $row['wr_id'] ?>() {
overlay_<?php echo $row['wr_id'] ?>.setMap(null);
}
overlay_<?php echo $row['wr_id'] ?>.setMap(null);
<?php
$cnt++;
}
}
?>
</script>
생성하는 부분있는데.. 커스텀 한건 따로 없어요... 뭐가 문제일까요?
저한테 물어보시지.. ㅎㅎ
Url 쪽지주세요 ^^
쪽지로 테스트 URL 넘겨줘보세요..
해당 페이지를 열람해봐야 원인을 확인 할수 있을것 같습니다.
답변을 작성하려면 로그인이 필요합니다.
어떤 스크립트가 head에 있는지 확인을 해야 하는지요