카카오톡 채팅 상담하기
실시간 상담

SGIS OpenAPI 지도상에 시각화 가능한 통계, 센서스지도, 센서스경계, TM좌표변환 > 자료실

본문 바로가기
사이드메뉴 열기

자료실 HOME

SGIS OpenAPI 지도상에 시각화 가능한 통계, 센서스지도, 센서스경계, TM좌표변환

페이지 정보

작성자 최고관리자 댓글 0건 조회 898회 작성일 20-03-12 19:01

본문

경위도 좌표 TM좌표로 변환
https://sgis.kostat.go.kr/developer/html/home.html


<출처> 아래 샘플예시
https://blog.ikjunekim.net/172?category=838632

<아래 출처내용>

https://sgis.kostat.go.kr/developer/html/home.html 가입 후 인증키를 발급 받아서 아래 코드 부분에 넣어준다.
인증키는 서비스ID와 보안Key 2가지

인증키로 authentication이 끝나면 결과값으로 리턴되는 accessToken을 좌표변환 api에 입력해줘서 좌표변환을 함
data.go.kr에서 지원하는 미세먼지 측정소 조회하는 서비스에는 중부원점으로 변환한 TM좌표로 넣어야 작동하는것 같음




경위도 좌표를 중부원점 TM좌표로 변환하는 php 코드
function gps2TM($lat, $lng)

    $url = 'https://sgisapi.kostat.go.kr/OpenAPI3/auth/authentication.json';
    $queryParams = '?'. urlencode('consumer_key')  .'='. urlencode('서비스ID').
                  '&'. urlencode('consumer_secret').'='. urlencode('보안Key');
                   
    $array = json_decode(getCurl($url.$queryParams),true);
 
    $url = 'https://sgisapi.kostat.go.kr/OpenAPI3/transformation/transcoord.json';
    $accessToken = '?'. urlencode('accessToken')    .'='. $array["result"]["accessToken"];     
    $queryParams = '&'. urlencode('src')    .'='. urlencode('4326').
                  '&'. urlencode('dst')    .'='. urlencode('5181').
                  '&'. urlencode('posX')  .'='. urlencode($lng).
                  '&'. urlencode('posY')  .'='. urlencode($lat);
   
    $array = json_decode(getCurl($url.$accessToken.$queryParams),true);
 
    // BESSEL 경/위도 EPSG:4004, EPSG:4162
    // WGS84 경/위도 EPSG:4326, EPSG:4166
    // GRS80 경/위도 EPSG:4019
    // 서부원점(GRS80) EPSG:5185, EPSG:5180
    // 중부원점(GRS80) EPSG:5181
    // 제주원점(GRS80) EPSG:5182, EPSG:5186
    // 동부원점(GRS80) EPSG:5183, EPSG:5187
    // 동해(울릉)원점(GRS80) EPSG:5184, EPSG:5188
    // UTM-K (GRS80) EPSG:5179
    // Google Mercator EPSG:900913
 
    $tmPos = array($array["result"]["posX"],$array["result"]["posY"]);
   
    return $tmPos;
}
 
function getCurl($url)
{
    $ch = curl_init();
 
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, FALSE);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
   
    $response = curl_exec($ch);
    curl_close($ch);
   
    return $response;
}
 
var_dump( gps2TM('36.386409','127.378737'));

댓글목록

등록된 댓글이 없습니다.