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'));
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'));
댓글목록
등록된 댓글이 없습니다.