답변 13개
감사합니다 싱경 쓰시느라 수고 많았습니다.저는 완전초보라 겨우 순서대로 홈페이지만 만들었지 아무것도 모르는 초보입니다 수고많이 하셨읍니다 초보라 포기하겠읍니다. 감사합니다
댓글을 작성하려면 로그인이 필요합니다.
다음과 같이 해볼 수 있을 것 같습니다.
write.skin.php
</p>
<p><?php</p>
<p>if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가</p>
<p>
</p>
<p>// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨</p>
<p>add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);</p>
<p> </p>
<p>//새글 작성일때 기본좌표</p>
<p>if($write['wr_5'] == null){$write['wr_5'] = 37.2540303019122;}</p>
<p>if($write['wr_6'] == null){$write['wr_6'] = 127.029761590557;}</p>
<p> </p>
<p>$g5['title'] = $group['gr_subject'];</p>
<p>?></p>
<p>이하생략~</p>
<p> <tr></p>
<p> <th>주 소</th> </p>
<p> <td colspan="3"></p>
<p> <input type="text" name="wr_3" value="<?php echo $write['wr_3'] ?>" id="wr_3" class="wm_input frm_address required" placeholder="주소검색" style="width:70%;" required readonly></p>
<p> <a href="javascript:void(0);" class="ser_bbt" id="ser_bbt"><i class="fa fa-search" aria-hidden="true"></i></a></p>
<p> <div style="width:50%; margin-top:5px;"></p>
<p> <input type="text" name="wr_4" value="<?php echo $write['wr_4'] ?>" id="wr_4" class="wm_input frm_address" placeholder="나머지주소"></p>
<p> </div> </p>
<p> </td></p>
<p> </tr> </p>
<p> <!-- API { --></p>
<p> <tr></p>
<p> <td colspan="4" class="cont_td"></p>
<p> </p>
<p> <div style="background-color:#f9f9f9; width:100%; margin-top:5px; height:200px; border-radius:4px;" id="map"></div></p>
<p> </p>
<p> <input type="hidden" name="wr_5" value="<?php echo $write['wr_5']; ?>" id="wr_5" class="frm_input winp" readonly></p>
<p> <input type="hidden" name="wr_6" value="<?php echo $write['wr_6']; ?>" id="wr_6" class="frm_input winp" readonly></p>
<p> </p>
<p> <div id="clickLatlng"></div></p>
<p> </p>
<p> <!--<script src="<a href="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script>-->" target="_blank" rel="noopener noreferrer">http://dmaps.daum.net/map_js_init/postcode.v2.js"></script>--></a></p>
<p> <script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=<?php echo $board['bo_1'] ?>&libraries=services"></script></p>
<p> <!-- } --></p>
<p> </p>
<p> <script></p>
<p> var mapContainer = document.getElementById('map'), // 지도를 표시할 div</p>
<p> mapOption = {</p>
<p> center: new daum.maps.LatLng(<?php echo $write['wr_5']?>, <?php echo $write['wr_6']?>), // 지도의 중심좌표</p>
<p> level: 3 // 지도의 확대 레벨</p>
<p> };</p>
<p> </p>
<p> // 지도를 생성</p>
<p> var map = new daum.maps.Map(mapContainer, mapOption);</p>
<p> </p>
<p> // 주소-좌표 변환 객체 생성</p>
<p> var geocoder = new daum.maps.services.Geocoder();</p>
<p> </p>
<p> // 마커</p>
<p> var marker = new daum.maps.Marker({</p>
<p> map: map,</p>
<p> // 지도 중심좌표에 마커를 생성</p>
<p> position: map.getCenter()</p>
<p> });</p>
<p> </p>
<p> </p>
<p> </p>
<p> // 주소검색 API (주소 > 좌표변환처리)</p>
<p> $(function() {</p>
<p> $("#wr_3").on("click", function() {</p>
<p> new daum.Postcode({</p>
<p> oncomplete: function(data) {</p>
<p> //console.log(data);</p>
<p> $("#wr_3").val(data.address);</p>
<p> //$("#road").val(data.roadAddress);</p>
<p> //$("#sido").val(data.sido);</p>
<p> //$("#gugun").val(data.sigungu);</p>
<p> //$("#dong").val(data.bname);</p>
<p> </p>
<p> geocoder.addressSearch(data.address, function(results, status) {</p>
<p> // 정상적으로 검색이 완료됐으면</p>
<p> if (status === daum.maps.services.Status.OK) {</p>
<p> </p>
<p> //첫번째 결과의 값을 활용</p>
<p> var result = results[0];</p>
<p> </p>
<p> // 해당 주소에 대한 좌표를 받아서</p>
<p> var coords = new daum.maps.LatLng(result.y, result.x);</p>
<p> </p>
<p> // 지도를 보여준다.</p>
<p> map.relayout();</p>
<p> </p>
<p> // 지도 중심을 변경한다.</p>
<p> map.setCenter(coords);</p>
<p> </p>
<p> // 좌표값을 넣어준다.</p>
<p> document.getElementById('wr_5').value = coords.getLat();</p>
<p> document.getElementById('wr_6').value = coords.getLng();</p>
<p> </p>
<p> // 마커를 결과값으로 받은 위치로 옮긴다.</p>
<p> marker.setPosition(coords);</p>
<p> }</p>
<p> });</p>
<p> </p>
<p> }</p>
<p> }).open();</p>
<p> });</p>
<p> </p>
<p> $("#ser_bbt").on("click", function() {</p>
<p> new daum.Postcode({</p>
<p> oncomplete: function(data) {</p>
<p> //console.log(data);</p>
<p> $("#wr_3").val(data.address);</p>
<p> //$("#road").val(data.roadAddress);</p>
<p> //$("#sido").val(data.sido);</p>
<p> //$("#gugun").val(data.sigungu);</p>
<p> //$("#dong").val(data.bname);</p>
<p> </p>
<p> geocoder.addressSearch(data.address, function(results, status) {</p>
<p> // 정상적으로 검색이 완료됐으면</p>
<p> if (status === daum.maps.services.Status.OK) {</p>
<p> </p>
<p> //첫번째 결과의 값을 활용</p>
<p> var result = results[0];</p>
<p> </p>
<p> // 해당 주소에 대한 좌표를 받아서</p>
<p> var coords = new daum.maps.LatLng(result.y, result.x);</p>
<p> </p>
<p> // 지도를 보여준다.</p>
<p> map.relayout();</p>
<p> </p>
<p> // 지도 중심을 변경한다.</p>
<p> map.setCenter(coords);</p>
<p> </p>
<p> // 좌표값을 넣어준다.</p>
<p> document.getElementById('wr_5').value = coords.getLat();</p>
<p> document.getElementById('wr_6').value = coords.getLng();</p>
<p> </p>
<p> // 마커를 결과값으로 받은 위치로 옮긴다.</p>
<p> marker.setPosition(coords);</p>
<p> }</p>
<p> });</p>
<p> </p>
<p> }</p>
<p> }).open();</p>
<p> });</p>
<p> });</p>
<p> </p>
<p> //마커를 기준으로 가운데 정렬이 될 수 있도록 추가</p>
<p> var markerPosition = marker.getPosition();</p>
<p> map.relayout();</p>
<p> map.setCenter(markerPosition);</p>
<p> </script></p>
<p> </p>
<p> </td></p>
<p> </tr></p>
<p> <!-- } API --></p>
<p>//이하생략~</p>
<p>
1. 상단에 초기 좌표값 설정합니다. (초기값은 원하시는 지역으로 설정 하세요)
</p>
<p>if($write['wr_5'] == null){$write['wr_5'] = 37.2540303019122;} //lat 초기좌표값 설정</p>
<p>if($write['wr_6'] == null){$write['wr_6'] = 127.029761590557;} // lng 초기좌표값 설정</p>
<p>
2. 카카오맵 API Key 해당게시판 여분필드 1 에 발급받은 javascript 키 등록
</p>
<p><script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=<?php echo $board['bo_1'] ?>&libraries=services"></script></p>
<p>
view.skin.php
</p>
<p><!-- API { --></p>
<p><script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=<?php echo $board['bo_1'] ?>&libraries=services"></script></p>
<p> </p>
<p><style></p>
<p>/* 말풍선 형식의 인포윈도우 스타일 */</p>
<p>.custom-infowindow {position: relative;padding: 10px;background-color: #ffffff;border: 1px solid #dddddd;border-radius: 5px;font-size: 14px;</p>
<p> color: #333333;box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);}</p>
<p>.custom-infowindow::before {content: '';position: absolute;top: 100%;left: 51%;margin-left: -10px;border-width: 10px;border-style: solid;</p>
<p> border-color: #ffffff transparent transparent transparent;z-index: 1;}</p>
<p></style></p>
<p> </p>
<p><script></p>
<p> var mapContainer = document.getElementById('map'); // 지도를 표시할 div</p>
<p> var mapOption = {</p>
<p> center: new daum.maps.LatLng(<?php echo $view['wr_5']?>, <?php echo $view['wr_6']?>), // 지도의 중심좌표</p>
<p> level: 3 // 지도의 확대 레벨</p>
<p> };</p>
<p> </p>
<p> // 지도를 생성합니다 </p>
<p> var map = new daum.maps.Map(mapContainer, mapOption);</p>
<p> </p>
<p> // 마커</p>
<p> var markerPosition = new daum.maps.LatLng(<?php echo $view['wr_5']?>, <?php echo $view['wr_6']?>);</p>
<p> var marker = new daum.maps.Marker({</p>
<p> position: markerPosition,</p>
<p> map: map</p>
<p> });</p>
<p> </p>
<p> // 커스텀 인포윈도우를 생성합니다</p>
<p> var infowindow = new daum.maps.CustomOverlay({</p>
<p> position: markerPosition,</p>
<p> content: '<div class="custom-infowindow"><?php echo cut_str(get_text($view['wr_subject']), 70); ?></div>',</p>
<p> yAnchor: 2 // 인포윈도우의 Y축 위치를 조정합니다 (1: 마커 위에 표시, 0: 마커 아래에 표시)</p>
<p> });</p>
<p> </p>
<p> // 인포윈도우를 지도에 표시합니다</p>
<p> infowindow.setMap(map);</p>
<p> </p>
<p> // 로드뷰 추가</p>
<p> var roadviewContainer = document.getElementById('roadview'); //로드뷰를 표시할 div</p>
<p> var roadview = new kakao.maps.Roadview(roadviewContainer); //로드뷰 객체</p>
<p> var roadviewClient = new kakao.maps.RoadviewClient(); //좌표로부터 로드뷰 파노ID를 가져올 로드뷰 helper객체</p>
<p> </p>
<p> // 특정 위치의 좌표와 가까운 로드뷰의 panoId를 추출하여 로드뷰를 띄웁니다</p>
<p> roadviewClient.getNearestPanoId(markerPosition, 50, function(panoId) {</p>
<p> roadview.setPanoId(panoId, markerPosition); // panoId와 중심좌표를 통해 로드뷰 실행</p>
<p> });</p>
<p></script></p>
<p> </p>
<p><!-- } API --></p>
<p>// 하단의 스크립트 이전에 위의 api 스크립트 수정 및 추가</p>
<p><script></p>
<p><?php if ($board['bo_download_point'] < 0) { ?></p>
<p>$(function() {</p>
<p>이하생략~</p>
<p>
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
이 오류의 한 가지 가능한 원인은 지도 서비스의 스크립트가 제대로 로드되지 않았거나 전혀 로드되지 않은 경우입니다. 예를 들어, 카카오 맵을 사용하는 경우 HTML 파일에 카카오 맵의 스크립트를 포함하고 `Geocoder` 객체를 사용하기 전에 로드되었는지 확인해야 합니다.
이 오류의 또 다른 가능한 원인은 `Geocoder` 객체가 제대로 초기화되기 전에 접근되는 경우입니다. 예를 들어, 카카오 맵을 사용하는 경우 `Geocoder` 객체를 사용하기 전에 초기화되었는지 확인해야 합니다.
카카오 데브톡에서 비슷한 문제를 겪은 사람들이 있습니다. 한 사람은 라이브러리를 요청하는 URL이 처음 카카오 맵을 요청하는 URL과 중복되면서 `Geocoder` 객체를 인식하지 못했다고 합니다. 맵을 요청하는 URL을 지워주니 잘 인식했다고 합니다¹. 다른 사람은 서비스 라이브러리 파라미터를 추가한 스크립트 한 줄만 사용하니 해결되었다고 합니다².
이 정보가 문제 해결에 도움이 되길 바랍니다. 상황에 대한 자세한 정보를 제공하시면 더 구체적인 조언을 드릴 수 있습니다. ?
(1) Geocoder 사용 중 자꾸 정의되지 않았다는 에러가 발생합니다 .... https://devtalk.kakao.com/t/geocoder/103635.
(2) kakao.maps.services.Geocoder() 호출시 에러문의입니다. https://devtalk.kakao.com/t/kakao-maps-services-geocoder/99681.
(3) React Kakao Maps 구현시 Cannot read property ‘Geocoder’ of undefined 오류. https://devtalk.kakao.com/t/react-kakao-maps-cannot-read-property-geocoder-of-undefined/115215.
(4) undefined. http://dapi.kakao.com/v2/maps/sdk.js?appkey=.
(5) undefined. https://dapi.kakao.com/v2/maps/sdk.js?appkey=*******&libraries=LIBRARY.
(6) undefined. https://dapi.kakao.com/v2/maps/sdk.js?appkey=*******&libraries=services,clusterer,drawing.
(7) undefined. https://dapi.kakao.com/v2/maps/sdk.js?appkey=*******&libraries=services.
댓글을 작성하려면 로그인이 필요합니다.
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('', 0);
?>
$ex4_filed = explode("|",$view[wr_4]);
$ext4_00 = $ex4_filed[0];//상호
$ext4_01 = $ex4_filed[1];//오전,오후 (시작)
$ext4_02 = $ex4_filed[2];//시작시간
$ext4_03 = $ex4_filed[3];//오전오후(끝)
$ext4_04 = $ex4_filed[4];//끝시간
$ext4_05 = $ex4_filed[5];//24시간
$ext4_06 = $ex4_filed[6];//배달가부
$ext4_07 = $ex4_filed[7];//포장
$ext4_08 = $ex4_filed[8];//전화1-1
$ext4_09 = $ex4_filed[9];//전화1-2
$ext4_10 = $ex4_filed[10];//전화1-3
$ext4_11 = $ex4_filed[11];//전화2-1
$ext4_12 = $ex4_filed[12];//전화2-2
$ext4_13 = $ex4_filed[13];//전화2-3
$ext4_14 = $ex4_filed[14];//
$ext4_15 = $ex4_filed[15];//
$ext4_16 = $ex4_filed[16];//
$ext4_17 = $ex4_filed[17];//
$ext4_18 = $ex4_filed[18];//
$ext4_19 = $ex4_filed[19];//
$ext4_20 = $ex4_filed[20];//
/*
$wr_5 //휴일
$wr_6 //대표메뉴
$wr_7 //배달가능지역
$wr_8//오시는 길
$wr_9
$wr_10
*/
// 주소입력
$wr3 = explode('|',$view['wr_3']);
$ex_zip = $wr3[0];
$ex_addr1 = $wr3[1];
$ex_addr2 = $wr3[2];
$ex_addr3 = $wr3[3];
$ex_jibeon = $wr3[4];
?>
echo cut_str(get_text($view['wr_subject']), 70); // 글제목 출력
?>
페이지 정보
작성자
댓글 건
조회 회
작성일
본문
if (!$view['file'][0]['view']){
echo "
echo "사진 준비중입니다.";
echo "
} else
include_once "gallery.php";
?>
- 업종
-
- 영업시간
-
echo $ext4_01." ".$ext4_02."시 부터 ".$ext4_03." ".$ext4_04."시 까지";
}
else if($ext4_05 == 2){
echo "24시간 영업";
}
else echo "***";
?>
- 정기휴일
- 대표메뉴
- 배달가능지역
- 배달
- 배달은 하지 않습니다.
- 포장
-
echo "모든 메뉴 포장 가능";
} else if($ext4_07 == 2){
echo "일부 메뉴 포장 가능";
} else if($ext4_07 == 3){
echo "포장판매는 하지 않습니다.";
}
?>
- 주차
-
echo "주차가능";
}
else if ($ext4_14 == '2'){
echo "주차장 없음";
}
?>
- 주문/예약
- -- / --
- 오시는 길
- 주소
-
$address = substr($view[wr_3], 5); // 3번 여유 필드에 저장 되어 있는 주소의 우편번호를 삭제
$addr = str_replace("|","",$address); // | 태그 삭제
echo $addr;
?>
| 메 뉴
| 가 격
| 메 뉴
| 가 격
|
|---|---|---|---|
| $wr_body_1[$i] | $wr_body_2[$i] 원 | $wr_body_1[$k] | $wr_body_2[$k] 원 |
// 파일 출력
$v_img_count = count($view['file']);
if($v_img_count) {
echo "
for ($i=11; $i<=count($view['file']); $i++) {
if ($view['file'][$i]['view']) {
//echo $view['file'][$i]['view'];
echo get_view_thumbnail($view['file'][$i]['view']);
}
}
echo "
}
?>
if($board['bo_use_good'] || $board['bo_use_nogood']) {
?>
추천
비추천
}
}
?>
$cnt = 0;
if ($view['file']['count']) {
for ($i=0; $i if (isset($view['file'][$i]['source']) && $view['file'][$i]['source'] && !$view['file'][$i]['view']) $cnt++; } } ?> 첨부파일
// 가변 파일
for ($i=0; $i if (isset($view['file'][$i]['source']) && $view['file'][$i]['source'] && !$view['file'][$i]['view']) { ?>
()
회 다운로드 | DATE :
}
}
?>
관련링크
-
회 연결
// 링크
$cnt = 0;
for ($i=1; $i<=count($view['link']); $i++) {
if ($view['link'][$i]) {
$cnt++;
$link = cut_str($view['link'][$i], 70);
?>
}
}
?>
ob_start();
?>
$link_buttons = ob_get_contents();
ob_end_flush();
?>
// 코멘트 입출력
include_once(G5_BBS_PATH.'/view_comment.php');
?>
$(function() {
$("a.view_file_download").click(function() {
if(!g5_is_member) {
alert("다운로드 권한이 없습니다.\n회원이시라면 로그인 후 이용해 보십시오.");
return false;
}
var msg = "파일을 다운로드 하시면 포인트가 차감(점)됩니다.\n\n포인트는 게시물당 한번만 차감되며 다음에 다시 다운로드 하셔도 중복하여 차감하지 않습니다.\n\n그래도 다운로드 하시겠습니까?";
if(confirm(msg)) {
var href = $(this).attr("href")+"&js=on";
$(this).attr("href", href);
return true;
} else {
return false;
}
});
});
function board_move(href)
{
window.open(href, "boardmove", "left=50, top=50, width=500, height=550, scrollbars=1");
}
$(function() {
$("a.view_image").click(function() {
window.open(this.href, "large_image", "location=yes,links=no,toolbar=no,top=10,left=10,width=10,height=10,resizable=yes,scrollbars=no,status=no");
return false;
});
// 추천, 비추천
$("#good_button, #nogood_button").click(function() {
var $tx;
if(this.id == "good_button")
$tx = $("#bo_v_act_good");
else
$tx = $("#bo_v_act_nogood");
excute_good(this.href, $(this), $tx);
return false;
});
// 이미지 리사이즈
$("#bo_v_atc").viewimageresize();
//sns공유
$(".btn_share").click(function(){
$("#bo_v_sns").fadeIn();
});
$(document).mouseup(function (e) {
var container = $("#bo_v_sns");
if (!container.is(e.target) && container.has(e.target).length === 0){
container.css("display","none");
}
});
});
function excute_good(href, $el, $tx)
{
$.post(
href,
{ js: "on" },
function(data) {
if(data.error) {
alert(data.error);
return false;
}
if(data.count) {
$el.find("strong").text(number_format(String(data.count)));
if($tx.attr("id").search("nogood") > -1) {
$tx.text("이 글을 비추천하셨습니다.");
$tx.fadeIn(200).delay(2500).fadeOut(200);
} else {
$tx.text("이 글을 추천하셨습니다.");
$tx.fadeIn(200).delay(2500).fadeOut(200);
}
}
}, "json"
);
}
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
내용만으로 봐서는 지도관련 스크립트를 불러오지 못하거나 오류가 있을 수 있습니다.
참고로 write.skin.php, list.skin.php, view.skin.php 에 지도관련 스크립트가 있어야 하는데 보이지가 않네요..
스킨이 어떻게 제작이 되어 있는지 부터 파악을 해야 알 수 있을것 같습니다.
해당 URL 올려주시면 답변 받기가 더 쉽지 않을까 하는 생각입니다.
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
초보라 포기하겠읍니다. 감사합니다