네이버 지도 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

네이버 지도 정보

네이버 지도

본문

지도가 어느날은 잘 나오다가

어느날은 안나오고... ㅡㅡ;;;

이유가 뭘까요?

map.php 입니다.

-------------------------------------------------------------------------------
<?
// 지도의 폭
$map_width = 550;

// 지도의 높이
$map_height = 280;

// 지도의 축적 1~11 사이의 자연수. 1에 가까울 수록 지도가 확대
$map_zoom = 2;

// 네이버 지도api 키값
$map_key = "key=5806829e51f370f6a4cc03941f93d5f9" ;

// 쿼리 돌릴 주소
$address = substr($view[wr_3], 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;
        }
        //header("Content-Type: text/xml; charset=utf-8");
        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=5806829e51f370f6a4cc03941f93d5f9"></SCRIPT>
<!-- 네이버 지도 키 값 끝 -->


<table width="550" cellpadding="0" cellspacing="3" bgcolor="f4f4f4" >
<tr>
<td bgcolor="ffffff">
<table width="100%" cellpadding="0" cellspacing="1" bgcolor="cccccc" >
<tr>
<td height="1" bgcolor="61AAC4">
</td>
</tr>
<tr>
<td bgcolor="ffffff">
<table width="100%" cellpadding="3" cellspacing="1" bgcolor="eeeeee" >
<tr bgcolor="ffffff">
<td>
<!-- 지도 출력 -->
<div id='mapContainer'></div>
<!-- 지도 출력 끝 -->
</td>
</tr>
</table>
</td>
</tr>
</table>
</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.gif", new NSize(22,22)); // 아이콘파일을 계정에 만드시고(지정된 위치에 표시되는 아이콘입니다) 이미지 주소 및 크기를 변경해주세요
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>
------------------------------------------------------------------------------------
혹시 잘나오는 map.php 있으시면 좀... ㅜ.ㅜ
  • 복사

댓글 전체

utf-8 쓰고 있습니다.

네이버 전에는 주소가 아닌 아파트 등 건물도 잘 표시되다가 갑자기 정확한 주소 (00동 444-4번지) 넣지 않으면 안나오더라고요...

참고로... 배추스킨에 포함된 map.php 필요하면 올려 드릴께요.
오류에 대한 직접적인 원인은 아니나
제가보기엔 잘못된거 같아서요

$map_key = "key=5806829e51f370f6a4cc03941f93d5f9" ;



$map_key = "5806829e51f370f6a4cc03941f93d5f9" ;
야호라로님 말처럼 www. 때문에 생기는 버그 일수도 있습니다.

지도키 발급받으실때 홈페이지 주소로 받지 마시구요

/

달랑 하나 적어주세요...
그럼 어느 위치에서 사용하든 불러와집니다.
fsockopen 보다는 curl 함수를 써보세요. 테스트 페이지: http://richarea.net/map/map_test1.php?view=주소를 적어주세요

"주소를 적어주세요" 란에 원하는 주소를 넣어 잘되는 지 보세요. curl은 잘되는 것 같던데... 관련 소스는 자게란에 찾아보면 어딘가 있을겁니다.
============= 개인적인글 =====================
요새 답변게시판에서 너무 안보이시네요 많이 바쁘신가봐용~
전에는 답변고수님이 계셔서 너무 좋았는데요 ㅎㅎ
조금 다른 부분이 있어서 ... 답 올립니다.

<!-- 네이버 지도 키 값 끝 --> 아래에 ...

<? if ($view[wr_3]) { // 임시필드인 wr_3에 주소가 있다면 네이버 api 지도를 출력
?>

<table width="600" cellpadding="10" cellspacing="2" bgcolor="f4f4f4" > 위...

테이블이 끝나는 지점에

</table>
<? } ?> 붙여 보세요 ...
© SIRSOFT
현재 페이지 제일 처음으로