네이버 지도 api

네이버 지도 api

QA

네이버 지도 api

본문

기존에 아래와같이 소스코드로 주소입력시 네이버지도api로 지도를 표시했었는데요,

이번에 네이버 키 방식으로 바뀌면서 사용이 중지되었습니다.

새로운 api키를 발급받았는데요, 어떻게 수정해야하는지 도움을 요청드립니다.

 


<? 
// 지도의 폭 
$map_width = 740; 
// 지도의 높이 
$map_height = 330; 
// 지도의 축적 1~11 사이의 자연수. 1에 가까울 수록 지도가 확대 
$map_zoom = 3; 
// 네이버 지도api 키값 
//$map_key = "key=dba4bf99bad7476766b590f139b0ed9f";  2016.12.16부터 사용불가
$map_key = "key=JhnKdJNYe8ic2tJdEcSM"; 
// 쿼리 돌릴 주소 

$address = substr($write[wr_7], 8); // 3번 여유 필드에 저장 되어 있는 주소의 우편번호를 삭제 
$adrress1 = str_replace("|","",$address); // | 태그 삭제 
$map_query = str_replace(" ","%20",$adrress1); // 3번 여유 필드에 저장 되어 있는 주소의 공백을 제거하여 변수에 저장 
// euc-kr로 변환 
//$map_cquery =iconv("utf-8","euc-kr","$map_query"); 
// 여기부터 주소 검색 xml 파싱 
$pquery = $map_key. "&query=". $map_query; 
    $fp = fsockopen ("map.naver.com", 80, $errno, $errstr, 30); 
    if (!$fp) { 
        echo "$errstr ($errno)"; 
    } else { 
        fputs($fp, "GET /api/geocode.php?"); 
        fputs($fp, $pquery); 
        fputs($fp, " HTTP/1.1\r\n"); 
        fputs($fp, "Host: map.naver.com\r\n"); 
        fputs($fp, "Connection: Close\r\n\r\n"); 
        
        $header = ""; 
        while (!feof($fp)) { 
            $out = fgets ($fp,512); 
            if (trim($out) == "") { 
                break; 
            } 
            $header .= $out; 
        } 
        
        $mapbody = ""; 
        while (!feof($fp)) { 
            $out = fgets ($fp,512); 
            $mapbody .= $out; 
        } 
        
        $idx = strpos(strtolower($header), "transfer-encoding: chunked"); 
        
        if ($idx > -1) { // chunk data 
            $temp = ""; 
            $offset = 0; 
            do { 
                $idx1 = strpos($mapbody, "\r\n", $offset); 
                $chunkLength = hexdec(substr($mapbody, $offset, $idx1 - $offset)); 
                
                if ($chunkLength == 0) { 
                    break; 
                } else { 
                    $temp .= substr($mapbody, $idx1+2, $chunkLength); 
                    $offset = $idx1 + $chunkLength + 4; 
                } 
            } while(true); 
            $mapbody = $temp; 
        } 
        fclose ($fp); 
    }    
// 여기까지 주소 검색 xml 파싱 

// 여기부터 좌표값 변수에 등록 
$map_x_point_1=explode("<x>", $mapbody); 
$map_x_point_2=explode("</x>", $map_x_point_1[1]); 
$map_x_point=$map_x_point_2[0]; 
$map_y_point_1=explode("<y>", $mapbody); 
$map_y_point_2=explode("</y>", $map_y_point_1[1]); 
$map_y_point=$map_y_point_2[0]; 
// 여기까지 좌표값 변수에 등록 

?> 

<!-- 네이버 지도 키 값 --> 
<SCRIPT language="JavaScript" src="http://map.naver.com/js/naverMap.naver?key=JhnKdJNYe8ic2tJdEcSM"></SCRIPT> 
<!-- 네이버 지도 키 값 끝 --> 
<? if ($view[wr_7]) { // 임시필드인 wr_3에 주소가 있다면 네이버 api 지도를 출력 
?> 
<table width="100%" cellpadding="0" cellspacing="0" border="0"> 
<tr> 
<td> 
<!-- 지도 출력 --> 
<div id='mapContainer'></div> 
<!-- 지도 출력 끝 --> 
</td> 
</tr> 
</table> 
<? } ?> 
<SCRIPT language="JavaScript"> 
<!-- 
var x_point = <? echo $map_x_point; ?>; 
var y_point = <? echo $map_y_point; ?>; 
var icon = new NIcon("<?=$board_skin_path?>/img/map_icon.png", new NSize(26,29)); // 아이콘파일을 계정에 만드시고(지정된 위치에 표시되는 아이콘입니다) 이미지 주소 및 크기를 변경해주세요 
var loc_Point = new NPoint(x_point,y_point);  // 포인트 표시 
var map_mark = new NMark(loc_Point, icon ); // 지도에 아이콘 표시 
var mapObj = new NMap(document.getElementById('mapContainer'),<? echo $map_width; ?>,<? echo $map_height; ?>); // 지도창 
var infowin = new NInfoWindow(); 
var zoom = new NZoomControl(); 
var zoomlevel = <? echo $map_zoom; ?> 
mapObj.addOverlay(map_mark); // 지도에 마크표시 
mapObj.setCenterAndZoom(loc_Point,zoomlevel); // 지도 중앙 
mapObj.addOverlay(infowin); 
zoom.setAlign("left"); // 줌 조절 버튼 왼쪽에 위치 
zoom.setValign("bottom"); // 줌 조절 버튼 아래에 위치 
// mapObj.enableWheelZoom();  지도 안에서 휠로 줌 조절 가능하게 하려면 주석을 풀어주세요 
mapObj.addControl(zoom); 
//--> 
</SCRIPT>  
 

이 질문에 댓글 쓰기 :

답변 1

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

회원로그인

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