네이버 지도 출력이 안됩니다 ㅠㅠ
본문
<?
//네이버 지도API 좌표값 가져오기
$key = "9d67a56d2a2fc0efd121ec430dd8ce2c";
$addr = "서울특별시 강동구 풍성로53길 11-9";
$url = "http://openapi.map.naver.com/api/geocode.php?key=".$key."&encoding=euc-kr&coord=latlng&query=".$addr;
//echo $url."<br/>";
$url = parse_url($url);
$fp = fsockopen($url['host'], 80, $errno, $errstr);
fputs($fp,"GET ".$url["path"].($url["query"] ? '?'.$url["query"] : '')." HTTP/1.0\r\n");
fputs($fp,"Host: " . $url["host"] . "\r\n");
fputs($fp,"User-Agent: PHP Script\r\n");
fputs($fp,"Connection: close\r\n\r\n");
$api_txt = fread($fp,1024);
preg_match('/<x>.+<\/x>/',$api_txt, $x);
preg_match('/<y>.+<\/y>/',$api_txt, $y);
$x_point = preg_replace('/[^.0-9]/','',$x[0]);
$y_point = preg_replace('/[^.0-9]/','',$y[0]);
?>
<script type="text/javascript">
try {document.execCommand('BackgroundImageCache', false, true);} catch(e) {}
</script>
<script type="text/javascript" src="http://openapi.map.naver.com/openapi/naverMap.naver?ver=2.0&key=<?=$key?>"></script>
<div id="map" style="width:100%;height:400px;border:1px solid #CCCCCC;position:relative;">지도가 들어갈 공간</div>
<script type="text/javascript">
var x_point = <?=$x_point?>;
var y_point = <?=$y_point?>;
var oPoint = new nhn.api.map.LatLng(y_point, x_point);
nhn.api.map.setDefaultPoint('LatLng');
oMap = new nhn.api.map.Map('map' ,{
point : oPoint,
zoom : 8,
enableWheelZoom : true,
enableDragPan : true,
enableDblClickZoom : false,
mapMode : 0,
activateTrafficMap : false,
activateBicycleMap : false,
minMaxLevel : [ 1, 14 ],
size : new nhn.api.map.Size(100%, 400)
});
var mapZoom = new nhn.api.map.ZoomControl(); // 줌 컨트롤 선언
mapTypeChangeButton = new nhn.api.map.MapTypeBtn(2); // 지도 타입 버튼 사용
mapTypeChangeButton.setPosition({top:63, left:50}); // 지도 타입 버튼 위치
oMap.addControl(mapTypeChangeButton);
mapZoom.setPosition({left:10, top:10}); // 줌 컨트롤 위치
oMap.addControl(mapZoom);
mapTypeChangeButton.setPosition({top:63, left:50}); // 지도 타입 버튼 위치
oMap.addControl(mapTypeChangeButton);
mapZoom.setPosition({left:10, top:10}); // 줌 컨트롤 위치
oMap.addControl(mapZoom);
var oSize = new nhn.api.map.Size(20, 20);
var oOffset = new nhn.api.map.Size(20, 20);
var oIcon = new nhn.api.map.Icon('http://static.naver.com/maps2/icons/pin_spot2.png', oSize, oOffset);
var oMarker1 = new nhn.api.map.Marker(oIcon, { title : '<?=$sub1_a?>' }); //마커 생성
oMarker1.setPoint(oPoint); //마커 표시할 좌표 선택
oMap.addOverlay(oMarker1);
</script>
머가잘못된걸까요ㅜㅜ
답변 3
$addr = "서울특별시 강동구 풍성로53길 11-9"
도로명 주소 말고 지번 주소로 해보세요~
urlencode 함수를 사용해서 한글 주소를 인코딩 후 넘겨주시면 될 듯 합니다.
$addr = urlencode("서울특별시 강동구 풍성로53길 11-9");
$addr = "서울특별시 강동구 풍성로53길 11-9"
$addr = "서울시 강동구 풍성로53길 11-9"
이렇게 바꾸면 좌표값은 잘 읽어 오는데 지도는 안 보이네요 ??
물론 지도키도 받아서 입력 했는데 말입니다.
답변을 작성하시기 전에 로그인 해주세요.