다음 지도 API 좌표값 얻기
다음 지도 API를 이용해서 좌표값을 얻는 PHP 예제 소스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
// 다음 지도api 키값 $map_key = "<다음API키값>"; // 쿼리 돌릴 주소 $address = "지번주소, 혹은 법정주소"; $map_query = urlencode($address); // 여기부터 주소 검색 xml 파싱 $pquery = $map_key. "&q=". $map_query . "&output=xml"; $fp = fsockopen ("apis.daum.net", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)"; } else { fputs($fp, "GET /local/geo/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); } $channel=new SimpleXMLElement($mapbody); $py = $channel->item[0]->lng; // 위도 $px = $channel->item[0]->lat; // 경도 |