네이버지도 주소로 좌표변환하여 지도생성하기 > 그누보드5 팁자료실

그누보드5 팁자료실

네이버지도 주소로 좌표변환하여 지도생성하기 정보

네이버지도 주소로 좌표변환하여 지도생성하기

본문

이번에 네이버지도가 개편이 되어 주소로 좌표변환해서 지도생성하는 소스입니다.

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>

추천
10

댓글 8개

질풍이랑님~~ 추천 도장 먼저 쾅~ 추천 클릭하고~~^^
좋은정보 감사 감사합니다~~^^*

질풍이랑님~ 초보여서 한가지만 문의드려요
엑셀로 입력되어있는 주소 파일을
게시판에서 여분필드에 넣고
어떻게 좌표 생성 하는지 전혀 이해가 안되네요~

저같이 잘 모르는 초보나, 모르는 분들과 함께 적용할려면
어떻게 해야하는지

질풍이랑님과 고수님분들 설명해주실수 있으시면 너무 너무 감사를 드립니다(꾸벅)
감사합니다~~
일단 주소는 $addr 변수로 받아서 사용합니다.
엑셀에 주소를 여분필드 wr_1 에 넣었다고 하면
$addr = $view['wr_1'] 이랑 같은 개념입니다.
단순이 주소값을 $addr 필드에 넣어서 사용 했을 뿐입니다.
$geo = getNaverGeocode($addr, $cId, $cSecret);

db에 저장된 주소를 좌표로 변환하여 구글지도를 생성하는 방식입니다.
좌표를 생성하는 부분은 함수 getNaverGeocode 호출하여 (주소,네이버아이디,네이버보안키)를 넘겨 주어서 주소에 해당하는 데이타를 가져옵니다.
$geo = getNaverGeocode($addr, $cId, $cSecret);

 $result = getHttp($url, $headers); 이부분에서 네이버와 서버통신으로 주소값을 던져주고 주소에 관련된 데이타를 가져오는 부분입니다.

$geo = getNaverGeocode($addr, $cId, $cSecret);

$data = json_decode($geo,1); => 데이터를 사용할 수있게 json_decode로 받아옵니다.

아래는 가지고 온 데이타로 좌표갑
$map_x_point = $data['addresses'][0]['x']; //이경우  x 좌표값과 y좌표값이 바뀌어서 출력됨
$map_y_point = $data['addresses'][0]['y'];
$y = $map_x_point;
$x = $map_y_point;
답변이 너무 늦었네요 너무 어렵게 생각하지 마세요
단순하게 주소는 db에 저장된 필드값을 $addr안에 넣어주면 됩니다.
게시판 뷰페이지라면 $addr = $view['wr_1']  으로 넣어서 사용 할 수 있습니다.
네이버 아이디랑 보안키만 있으면 기존 소스만 넣어서 사용하면 바로 지도로 변환 가능합니다.


$geo = getNaverGeocode($addr, $cId, $cSecret); 이쪽에서 (주소,네이버아이디,네이버보안키)를 넘겨주면

함수 getNaverGeocode 가 함수 getHttp를 호출하여 naveropenapi.apigw.ntruss.com 서버에 주소값을 보내서 해당 주소에 관련된 데이터를 json형태로 받아옵니다.
그데이터를 $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;
$y 값과 $x 값이 서로 반대로 출력되는게 의아스럽지만 정상적인 방식입니다.
정상적으로 $x $y를 넣었더니 다른 곳으로 지도가 생성되더라구요
전체 2,411 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT