다음 주소,지도 API 관련 질문입니다.

다음 주소,지도 API 관련 질문입니다.

QA

다음 주소,지도 API 관련 질문입니다.

본문

안녕하세요 도움이  필요하여 글을 올립니다. 

 

현재 다음 주소,지도 API 를 이용해서 글을쓸때 주소 검색해서 지도에 마커 표시하고

 

그 글쓴 정보를 가지고 상세페이지에서 주소와 지도에서 똑같이 마커로 표시를 할려고 하는데요

 

주소는 wr_addr 이렇게 input 해서 상세페이지에 뿌려주고있는데

 

지도의 좌표값은 어떻게 저장해서 상세페이지에 나타내줘야하는지를 모르겠습니다..

 

글쓸때 쓰는 코드는 아래와 같습니다.

                   <script>


                        var mapContainer = document.getElementById('map'), // 지도를 표시할 div
                            mapOption = {
                                center: new daum.maps.LatLng(37.537187, 127.005476), // 지도의 중심좌표
                                level: 5 // 지도의 확대 레벨 
                            };
        
                        //지도를 미리 생성
                        var map = new daum.maps.Map(mapContainer, mapOption);
                        //주소-좌표 변환 객체를 생성
                        var geocoder = new daum.maps.services.Geocoder();
                        //마커를 미리 생성
                        var marker = new daum.maps.Marker({
                            position: new daum.maps.LatLng(37.537187, 127.005476),
                            map: map
                        });


                        function sample5_execDaumPostcode() {
                            new daum.Postcode({
                                oncomplete: function(data) {
                                    // 각 주소의 노출 규칙에 따라 주소를 조합한다.
                                    // 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다.
                                    var fullAddr = data.address; // 최종 주소 변수
                                    var extraAddr = ''; // 조합형 주소 변수

                                    // 기본 주소가 도로명 타입일때 조합한다.
                                    if(data.addressType === 'R'){
                                        //법정동명이 있을 경우 추가한다.
                                        if(data.bname !== ''){
                                            extraAddr += data.bname;
                                        }
                                        // 건물명이 있을 경우 추가한다.
                                        if(data.buildingName !== ''){
                                            extraAddr += (extraAddr !== '' ? ', ' + data.buildingName : data.buildingName);
                                        }
                                        // 조합형주소의 유무에 따라 양쪽에 괄호를 추가하여 최종 주소를 만든다.
                                        fullAddr += (extraAddr !== '' ? ' ('+ extraAddr +')' : '');
                                    }
                                    // 우편번호와 주소 정보를 해당 필드에 넣는다.
                                    document.getElementById('wr_addr_0').value = data.zonecode; //5자리 새우편번호 사용
                                    document.getElementById('wr_addr_1').value = fullAddr;

                                    // 커서를 상세주소 필드로 이동한다.
                                    document.getElementById('wr_addr_2').focus();


                                    // 주소 정보를 해당 필드에 넣는다.
                                    document.getElementById("wr_addr_1").value = fullAddr;
                                    // 주소로 상세 정보를 검색
                                    geocoder.addressSearch(data.address, function(results, status) {
                                        // 정상적으로 검색이 완료됐으면
                                        if (status === daum.maps.services.Status.OK) {

                                            var result = results[0]; //첫번째 결과의 값을 활용

                                            // 해당 주소에 대한 좌표를 받아서
                                            var coords = new daum.maps.LatLng(result.y, result.x);
                                            // 지도를 보여준다.
                                            mapContainer.style.display = "block";
                                            map.relayout();
                                            // 지도 중심을 변경한다.
                                            map.setCenter(coords);
                                            // 마커를 결과값으로 받은 위치로 옮긴다.
                                            marker.setPosition(coords)
                                        }
                                        });
                                }
                            }).open();
                        }
                    </script>

 

 

도움좀 부탁드리겠습니다!

 

 

 

이 질문에 댓글 쓰기 :

답변 1

http://gnuwiz.com/board_tip/45?sca=%EA%B2%8C%EC%8B%9C%ED%8C%90+%ED%8C%81

참고하세요.

말씀하신대로 다했습니다. 지도에 좌표값을 못받아서 안난오네요 ㅠ, 저는 wr_longitude  wr_latitude 를 wr_lng wr_lat 으로 쓰고있어서 이것만 바꿨는데요 애초에 write.skin.php 에서 wr_lat 과 wr_lng 값 자체가 insert 가 안됩니다. 이 값들은 write.skin.php 에서 받아서  DB 로 넘기고 싶으면 어디에 변수를 넣으면 되는지요??

좌표 값이 db에 insert할때 변환이 안된다는 건가요?
해당 함수 부분에 echo 로 출력후에 exit;로 종료시키면서
해당 좌표값이 받아오는지 테스트 해보셔야할것 같습니다.
만든지 얼마안된소스라서 제가 개발한 사이트에서는 현재 문제없이 사용되고있습니다.

해당 참고용 소스는 다음 지도에서 주소를 선택후
다음,카카오 api로 해당 주소를 좌표값으로 변환하는 함수입니다.
해당 함수에서 값이 나오는지를 제대로 체크해야할것 같습니다.

정말 죄송합니다..초보라 자꾸 여쭤봅니다. 제가 찍어보는법을 잘몰라서 write.skin.php 에서 지도 api 스크립트쪽 변수를 console.log 로 찍어볼려고했는대 값이 안나오네요... 좌표값이 DB 에 wr_lat wr_lng 가 있는데 값 자체가 아무것도 안담깁니다. 다른값들은 다 문제없이 들어가는데요.. 주소나 상세주소같은 애들요  해당 좌표값을 받아오는지 테스트하는법을 조금만더 구체적으로 말씀해주실수 있으신가요?  뷰페이지에서 지도는뜨는데 드레그 확대축소 다되는데 좌표만 안찍히네요, 그리구 소스가 카카오로 되어있던데 그건 상관 없는 부분이겠죠?

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

회원로그인

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