다음 지도서비스 스킨적용시 좌표값이 안넘어 올경우 정보
다음 지도서비스 스킨적용시 좌표값이 안넘어 올경우관련링크
본문
http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=106064&sca=&sfl=wr_subject&stx=%C1%F6%B5%B5&sop=and
의 지도스킨을 씁니다..
키값이나 모든것 체크했는데 결과적으로 지도가 표시안되네요...
지도를 표시하는데 필요한 road_map.php내용은 아래와 같습니다.
중간에 echo문 쓴것은 값을 확인하기위해 쓴겁니다...
작업사이트는 링크1에 있습니다.
지금까지 결론에는 charset에서 무언가 안맞는거 같기도 하고..ㅡ.ㅡ; 거기까지가 한계이네요..
도움 부탁드리겠습니다.
의 지도스킨을 씁니다..
키값이나 모든것 체크했는데 결과적으로 지도가 표시안되네요...
지도를 표시하는데 필요한 road_map.php내용은 아래와 같습니다.
중간에 echo문 쓴것은 값을 확인하기위해 쓴겁니다...
작업사이트는 링크1에 있습니다.
지금까지 결론에는 charset에서 무언가 안맞는거 같기도 하고..ㅡ.ㅡ; 거기까지가 한계이네요..
도움 부탁드리겠습니다.
<!-- 다음 지도 키 값 -->
<script src="http://apis.daum.net/maps/maps2.js?apikey=50eb0025937ca1a630943686abec45ad1b0c2059" charset="utf-8"></script>
<!-- 다음 지도 키 값 끝 -->
<?
// 다음 지도api 키값
$map_key = "apikey=50eb0025937ca1a630943686abec45ad1b0c2059" ;
// 쿼리 돌릴 주소
$address = $view[content];
$address = urlencode($address);
$map_query = iconv("euc-kr","utf-8",$address);
echo $address;
echo $map_query;
echo $view[content];
// 여기부터 주소 검색 xml 파싱
$pquery = $map_key. "&q=". $map_query . "&output=xml";
echo $pquery;
$fp = fsockopen ("apis.daum.net", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)";
} else {
fputs($fp, "GET /maps/addr2coord?");
fputs($fp, $pquery);
fputs($fp, " HTTP/1.1\r\n");
fputs($fp, "Host: apis.daum.net\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 파싱
// 여기부터 좌표값 변수에 등록
print_r($map_y_point);
$map_x_point_1=explode("<lng>", $mapbody);
$map_x_point_2=explode("</lng>", $map_x_point_1[1]);
$map_x_point=$map_x_point_2[0];
$map_y_point_1=explode("<lat>", $mapbody);
$map_y_point_2=explode("</lat>", $map_y_point_1[1]);
$map_y_point=$map_y_point_2[0];
// 여기까지 좌표값 변수에 등록
?>
<table width="950" height="400" cellpadding="3" cellspacing="1" bgcolor="#FF9900" align="center">
<tr>
<td>
<!-- 지도 출력 -->
<div id='rmap'></div>
<!-- 지도 출력 끝 -->
</td>
<td>
<!-- 로브뷰 출력 -->
<div id='roadview'></div>
<!-- 로드뷰 출력 끝 -->
</td>
</tr>
</table>
<div style="height:10px;"></div>
<div style="text-align:left">
<button onclick="enable()">LoadView SHOW</button>
<button onclick="disable()">LoadView HIDE</button>
</div>
댓글 전체
road_map.php 파일에서 60번째 라인에다가
echo $mapbody; exit;
입력해놓고 XML 파싱된 값을 확인해 보면 글자가 깨져서 보이는 것이 다음 로드맵에서 리턴된 값이 UTF-8 이라서 현재 사용하고 계신 곳은 아마도 EUC-KR 일겁니다. 글자가 깨져서 리턴된다고 해도 좌표값만 리턴된 값 중에서 맨끝에 있는 좌표값만 필요한 거라서.
제 UTF-8 계정에서 echo $mapbody; 로 값을 체크해보면 아래와 같은 값이 ECHO됩니다.
<channel><title>Search address Daum Open API</title><desc>Daum Open API search result</desc><totalCount>2</totalCount><result>10</result><q>서울시 송파구 풍납동 390</q><pageno>1</pageno><item><id>J981016</id><title>서울 송파구 풍납동 390-0[아산병원길 22]</title><mountain></mountain><localName_1>서울</localName_1><localName_2>송파구</localName_2><localName_3>풍납동</localName_3><mainAddress>390</mainAddress><subAddress>0</subAddress><buildingAddress></buildingAddress><isNewAddress>N</isNewAddress><newAddress>아산병원길 22</newAddress><lng>127.11641788083085</lng><lat>37.52536337573928</lat></item><item><id>J981017</id><title>서울 송파구 풍납동 390-1</title><mountain></mountain><localName_1>서울</localName_1><localName_2>송파구</localName_2><localName_3>풍납동</localName_3><mainAddress>390</mainAddress><subAddress>1</subAddress><buildingAddress></buildingAddress><isNewAddress>N</isNewAddress><newAddress></newAddress><lng>127.11726425272366</lng><lat>37.52548148063356</lat></item></channel>
입력하신 주소가 다음의 지도 사이트에서 정상적으로 지도가 보여지는지 또는 로드뷰가 존재하는지 먼저 확인해보셨나요?
확인하는 주소는 http://local.daum.net/map/index.jsp 입니다.
echo $mapbody; exit;
입력해놓고 XML 파싱된 값을 확인해 보면 글자가 깨져서 보이는 것이 다음 로드맵에서 리턴된 값이 UTF-8 이라서 현재 사용하고 계신 곳은 아마도 EUC-KR 일겁니다. 글자가 깨져서 리턴된다고 해도 좌표값만 리턴된 값 중에서 맨끝에 있는 좌표값만 필요한 거라서.
제 UTF-8 계정에서 echo $mapbody; 로 값을 체크해보면 아래와 같은 값이 ECHO됩니다.
<channel><title>Search address Daum Open API</title><desc>Daum Open API search result</desc><totalCount>2</totalCount><result>10</result><q>서울시 송파구 풍납동 390</q><pageno>1</pageno><item><id>J981016</id><title>서울 송파구 풍납동 390-0[아산병원길 22]</title><mountain></mountain><localName_1>서울</localName_1><localName_2>송파구</localName_2><localName_3>풍납동</localName_3><mainAddress>390</mainAddress><subAddress>0</subAddress><buildingAddress></buildingAddress><isNewAddress>N</isNewAddress><newAddress>아산병원길 22</newAddress><lng>127.11641788083085</lng><lat>37.52536337573928</lat></item><item><id>J981017</id><title>서울 송파구 풍납동 390-1</title><mountain></mountain><localName_1>서울</localName_1><localName_2>송파구</localName_2><localName_3>풍납동</localName_3><mainAddress>390</mainAddress><subAddress>1</subAddress><buildingAddress></buildingAddress><isNewAddress>N</isNewAddress><newAddress></newAddress><lng>127.11726425272366</lng><lat>37.52548148063356</lat></item></channel>
입력하신 주소가 다음의 지도 사이트에서 정상적으로 지도가 보여지는지 또는 로드뷰가 존재하는지 먼저 확인해보셨나요?
확인하는 주소는 http://local.daum.net/map/index.jsp 입니다.