다음지도 api 문의
본문
아래는 다음지도 api 기본 예제인데요..
<html>
<head>
<meta charset="utf-8">
<title>다음 지도 API</title>
</head>
<body>
<div id="map" style="width:750px;height:350px;"></div>
<script src="//dapi.kakao.com/v2/maps/sdk.js?appkey=앱키-입력함"></script>
<script>
var mapContainer = document.getElementById('map'), // 지도를 표시할 div
mapOption = {
center: new daum.maps.LatLng(37.56740, 126.98028), // 지도의 중심좌표
level: 4, // 지도의 확대 레벨
mapTypeId : daum.maps.MapTypeId.ROADMAP // 지도종류
};
// 지도를 생성한다
var map = new daum.maps.Map(mapContainer, mapOption);
</script>
</body>
</html>
=========
톰소여님의 소스를 참조해서 올리면
이와 같이 �ּ� ������ ã�� �� �����ϴ�.not found!
주소 정보를 찾을 수 없습니다.not found 라고 글자만 깨져서 출력되고 지도는 나오지 않습니다.
기본예제에 입력한 앱키를 아래에도 똑같이 2군데 입력한 상태입니다.
어디를 수정해야 하나요?
print_r($json_list); // json 형태의 결과값
$json_list = json_decode($json_list,true);
print_r($json_list ); // array 형태의 결과값
와 같이 해주면
json 형태의 결과값
{"errorType":"NotAuthorizedError","message":"appkey(키값 출력) is not registered"}
array 형태의 결과값
Array ( [errorType] => NotAuthorizedError [message] => appkey(키값 출력) is not registered )
http://proxy9747.my-addr.org/myaddrproxy.php/http/developers.daum.net/services/apis/docs/errors
403 NotAuthorizedError 등록되지 않은 appkey사용 ==> 이라고 나옴 ??
---------------------
사용한 소스내용
---------------------
https://sir.kr/qa/?wr_id=61968
(아래 내용을 view.skin.php 인클루드해서 불러들이고 있습니다.)
<body onload="init()">
<!----다음 지도 api key--->
<script type="text/javascript" src="http://apis.daum.net/maps/maps3.js?apikey=앱키-입력함" charset="utf-8"></script>
<?
//include_once("dbcon.php");
//**회원아이디에서 주소뽑기 쿼리추가**//
//$addr = $row[mb_addr1]."".$row[mb_addr2];
$ex3_filed = explode("|",$view[wr_3]);
//$ex3_filed = explode('|', rtrim($view[wr_3], '_'));
//$addr = $ex3_filed[1] .' '.$ex3_filed[3] ;
$addr = $ex3_filed[1];
//echo str_replace('_', '', $addr);
//$addr = str_replace('_', '', $addr);
//print_r($addr);
//print_r($ex3_filed[1]);
// $addr = "서울 서대문구 연희동 274-1";
$addr = urlencode($addr);
$file = "http://apis.daum.net/local/geo/addr2coord?apikey=앱키-입력함&q=".$addr."&output=json&inputCoordSystem=WGS84";
//다음 로컬 api key값 추가하기
///외부파일 불러오기 함수
function get_url_fsockopen( $url ) {
$URL_parsed = parse_url($url);
$host = $URL_parsed["host"];
$port = $URL_parsed["port"];
if ($port==0)
$port = 80;
$path = $URL_parsed["path"];
if ($URL_parsed["query"] != "")
$path .= "?".$URL_parsed["query"];
$out = "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n";
$fp = fsockopen($host, $port, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
fputs($fp, $out);
$body = false;
while (!feof($fp)) {
$s = fgets($fp, 128);
if ( $body )
$in .= $s;
if ( $s == "\r\n" )
$body = true;
}
fclose($fp);
return $in;
}
}
$json_list = get_url_fsockopen($file);
$json_list = str_replace('\\','',$json_list);
//print_r($json_list); // json 형태의 결과값
$json_list = json_decode($json_list,true);
//print_r($json_list ); // array 형태의 결과값
if((!$json_list[channel][item][0][lat]) || (!$json_list[channel][item][0][lng])){
echo iconv('utf-8','euc-kr', "주소 정보를 찾을 수 없습니다.not found!");
//echo iconv("address information not found!");
}
?>
<script type="text/javascript">
var map;
function init() {
map = new daum.maps.Map(document.getElementById('map'), {
center: new daum.maps.LatLng(<?=$json_list[channel][item][0][lat]?>, <?=$json_list[channel][item][0][lng]?>),
level:4
});
var marker = new daum.maps.Marker({
position: new daum.maps.LatLng(<?=$json_list[channel][item][0][lat]?>, <?=$json_list[channel][item][0][lng]?>)
});
marker.setMap(map);
}
</script>
<div id="map" style="width:450px;height:350px;"></div>
답변 2
일단 한글깨지는 거부터 수정하셔야 할듯..
1. php 파일의 인코딩 확인
2. php 헤더에 utf-8 설정 확인
- header('Content-Type: text/html; charset=utf8'); header('Content-Type: text/html; charset=utf8');
스크립트가 kakao.com 과 daum.net 이 혼재되어있네요...