24'C 구름 많음
서울 강남구
이번에 네이버지도가 개편이 되어 주소로 좌표변환해서 지도생성하는 소스입니다.
https://www.ncloud.com/ 에서 회원가입후 등록을 하셔야 합니다.
예전 소스하고 조금 변동이 있어 올려봅니다.
<?
// 주소에 따른 좌표 정보 가져오기
function getNaverGeocode($addr, $cId, $cSecret) {
$addr = urlencode($addr);
$url = "https://naveropenapi.apigw.ntruss.com/map-geocode/v2/geocode?query=".$addr;
$headers = array();
$headers[] ="X-NCP-APIGW-API-KEY-ID: ".$cId;
$headers[] ="X-NCP-APIGW-API-KEY: ".$cSecret;
//$headers[] ="Connection: Close";
$result = getHttp($url, $headers);
return $result;
}
// curl 통신 하기
function getHttp($url, $headers=null){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$cId = "네이버아이디"; //네이버 클라우드아이디값
$cSecret = "네이버시크릿키"; // 네이버 시크릿키 값
$geo = getNaverGeocode($addr, $cId, $cSecret);
$data = json_decode($geo,1);
$map_x_point = $data['addresses'][0]['x']; //이경우 x 좌표값과 y좌표값이 바뀌어서 출력됨
$map_y_point = $data['addresses'][0]['y'];
$y = $map_x_point;
$x = $map_y_point;
?>
<!-- 지도 api script start -->
<script type="text/javascript" src="https://openapi.map.naver.com/openapi/v3/maps.js?ncpClientId=<?=$cId?>"></script>
<script type="text/javascript">
var map = new naver.maps.Map('map_map', {
center: new naver.maps.LatLng( '<?=$x?>', '<?=$y?>'),
zoom: 13,
//size: new naver.maps.Size(980, 513)
size: new naver.maps.Size(490, 324)
});
var marker = new naver.maps.Marker({
position: new naver.maps.LatLng('<?=$x?>', '<?=$y?>'),
map: map
});
</script>