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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누보드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,431 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

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