테스트 사이트 - 개발 중인 베타 버전입니다

네이버 지도 api 채택완료

클립 8년 전 조회 7,218

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

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

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

 

</p><p><? 
// 지도의 폭 
$map_width = 740; </p><p>// 지도의 높이 
$map_height = 330; </p><p>// 지도의 축적 1~11 사이의 자연수. 1에 가까울 수록 지도가 확대 
$map_zoom = 3; </p><p>// 네이버 지도api 키값 
//$map_key = "key=dba4bf99bad7476766b590f139b0ed9f";  2016.12.16부터 사용불가
$map_key = "key=JhnKdJNYe8ic2tJdEcSM"; </p><p>// 쿼리 돌릴 주소 </p><p>
$address = substr($write[wr_7], 8); // 3번 여유 필드에 저장 되어 있는 주소의 우편번호를 삭제 
$adrress1 = str_replace("|","",$address); // | 태그 삭제 
$map_query = str_replace(" ","%20",$adrress1); // 3번 여유 필드에 저장 되어 있는 주소의 공백을 제거하여 변수에 저장 </p><p>// euc-kr로 변환 
//$map_cquery =iconv("utf-8","euc-kr","$map_query"); </p><p>// 여기부터 주소 검색 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 파싱 </p><p>
// 여기부터 좌표값 변수에 등록 
$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]; </p><p>$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]; 
// 여기까지 좌표값 변수에 등록 </p><p>
?> </p><p>
<!-- 네이버 지도 키 값 --> 
<SCRIPT language="JavaScript" src="<a href='<a href="http://map.naver.com/js/naverMap.naver?key=JhnKdJNYe8ic2tJdEcSM" target="_blank" rel="noopener noreferrer">http://map.naver.com/js/naverMap.naver?key=JhnKdJNYe8ic2tJdEcSM</a>"></SCRIPT'><a href="http://map.naver.com/js/naverMap.naver?key=JhnKdJNYe8ic2tJdEcSM" target="_blank" rel="noopener noreferrer">http://map.naver.com/js/naverMap.naver?key=JhnKdJNYe8ic2tJdEcSM</a>"></SCRIPT</a>> 
<!-- 네이버 지도 키 값 끝 --> </p><p><? 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> 
<? } ?> </p><p><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; ?> </p><p>mapObj.addOverlay(map_mark); // 지도에 마크표시 
mapObj.setCenterAndZoom(loc_Point,zoomlevel); // 지도 중앙 
mapObj.addOverlay(infowin); 
zoom.setAlign("left"); // 줌 조절 버튼 왼쪽에 위치 
zoom.setValign("bottom"); // 줌 조절 버튼 아래에 위치 
// mapObj.enableWheelZoom();  지도 안에서 휠로 줌 조절 가능하게 하려면 주석을 풀어주세요 
mapObj.addControl(zoom); 
//--> 
</SCRIPT>  </p><p>
 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

사바이캅

이런 수정은 간단하게 의뢰를 하시는게 나아보입니다..

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인