네이버 지도 정보
네이버 지도본문
지도가 어느날은 잘 나오다가
어느날은 안나오고... ㅡㅡ;;;
이유가 뭘까요?
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 있으시면 좀... ㅜ.ㅜ
어느날은 안나오고... ㅡㅡ;;;
이유가 뭘까요?
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 필요하면 올려 드릴께요.
네이버 전에는 주소가 아닌 아파트 등 건물도 잘 표시되다가 갑자기 정확한 주소 (00동 444-4번지) 넣지 않으면 안나오더라고요...
참고로... 배추스킨에 포함된 map.php 필요하면 올려 드릴께요.

오류에 대한 직접적인 원인은 아니나
제가보기엔 잘못된거 같아서요
$map_key = "key=5806829e51f370f6a4cc03941f93d5f9" ;
를
$map_key = "5806829e51f370f6a4cc03941f93d5f9" ;
제가보기엔 잘못된거 같아서요
$map_key = "key=5806829e51f370f6a4cc03941f93d5f9" ;
를
$map_key = "5806829e51f370f6a4cc03941f93d5f9" ;
주소 앞에 www.가 붙고 안붙고에도 문제가 생기더라구요. 이 부분 체크해보세요.

$map_key = "key=5806829e51f370f6a4cc03941f93d5f9" ; 정상이고요...
만약 key= 삭제하면 지도가 표시되지 않습니다.
만약 key= 삭제하면 지도가 표시되지 않습니다.

야호라로님 말처럼 www. 때문에 생기는 버그 일수도 있습니다.
지도키 발급받으실때 홈페이지 주소로 받지 마시구요
/
달랑 하나 적어주세요...
그럼 어느 위치에서 사용하든 불러와집니다.
지도키 발급받으실때 홈페이지 주소로 받지 마시구요
/
달랑 하나 적어주세요...
그럼 어느 위치에서 사용하든 불러와집니다.
fsockopen 보다는 curl 함수를 써보세요. 테스트 페이지: http://richarea.net/map/map_test1.php?view=주소를 적어주세요
"주소를 적어주세요" 란에 원하는 주소를 넣어 잘되는 지 보세요. curl은 잘되는 것 같던데... 관련 소스는 자게란에 찾아보면 어딘가 있을겁니다.
"주소를 적어주세요" 란에 원하는 주소를 넣어 잘되는 지 보세요. curl은 잘되는 것 같던데... 관련 소스는 자게란에 찾아보면 어딘가 있을겁니다.

============= 개인적인글 =====================
요새 답변게시판에서 너무 안보이시네요 많이 바쁘신가봐용~
전에는 답변고수님이 계셔서 너무 좋았는데요 ㅎㅎ
요새 답변게시판에서 너무 안보이시네요 많이 바쁘신가봐용~
전에는 답변고수님이 계셔서 너무 좋았는데요 ㅎㅎ
예 요즘 구경만하고 가는 경우가 많아요... 예전보다 시간이 없어서...


조금 다른 부분이 있어서 ... 답 올립니다.
<!-- 네이버 지도 키 값 끝 --> 아래에 ...
<? if ($view[wr_3]) { // 임시필드인 wr_3에 주소가 있다면 네이버 api 지도를 출력
?>
<table width="600" cellpadding="10" cellspacing="2" bgcolor="f4f4f4" > 위...
테이블이 끝나는 지점에
</table>
<? } ?> 붙여 보세요 ...
<!-- 네이버 지도 키 값 끝 --> 아래에 ...
<? if ($view[wr_3]) { // 임시필드인 wr_3에 주소가 있다면 네이버 api 지도를 출력
?>
<table width="600" cellpadding="10" cellspacing="2" bgcolor="f4f4f4" > 위...
테이블이 끝나는 지점에
</table>
<? } ?> 붙여 보세요 ...
감사합니다. 답변해주신것들 참고해서 다시 해봐야겠네요... ^^
모두 감사감사.. (__)
모두 감사감사.. (__)