브이월드 api 사용법 - beu-iwoldeu api sayongbeob

개발

VWORLD 브이월드 - 간단한 3D 지도 기능 만들기 및 API 활용 개발 정리

브이월드 VWORLD 를 이용하여 3D 지도를 표시하는 기능을 만들어봤다.

지번, 도로명, 장소 검색 가능.

건물을 가까에서 보면 3D 로 렌더링되며 Visual Studio 2015 C# Winform 으로 만들었다.

가까이 확대하면 3D 렌더링되어 마치 게임화면 같은 느낌.
 

** 선행작업 **

-아래링크에서 브이월드에 가입하고 인증키를 발급 받는다.

url 은 자신이 서비스할 url 을 적으면 되는데 윈폼에서 사용하려면 "localhost:8080" 입력. 

http://www.vworld.kr/dev/v4api.do

-아래 링크에서 3D 데스크톰 API를 받아 설치한다.

"3D 데스크톰 API 샘플" 은 샘플 소스인데 참조하자. 

http://www.vworld.kr/dev/v4dv_dhapiguide_s001.do

-JSON 파서 설치.

Nuget 에서 "Install-Package Newtonsoft.Json" 입력하여 json 파서 설치. 

-첨부파일 소스에는 API 인증키가 입력되지 않은 상태이므로 각자 발급받은 API 인증키를 입력해야한다.

** 후기 **

간단한 프로그램 만들어보면서 느낀건 브이월드보다는 카카오맵이 API 레퍼런스나 샘플소스가 더 정리가 잘되어있는 느낌이다.

브이월드는 사이트 메뉴 구성도 좀 이상하고 정리가 덜된 느낌. 국가에서 운영하는건 뭔가 믿음이 안간다..

카카오맵이나 브이월드나 처음 만들어봤는데 지도 서비스가 웹 위주로 하는건가.. 자바스크립트 API 가 많던데 

웹서버에서 지도 서비스할때 자바스크립트를 사용하면 되는건가?

아직 개념이 안잡힌다. 

** 그밖의 브이월드 API 메모 **

-국가교통부에서 운영.

 구글, 애플, 네이버, 카카오맵 등은 트래픽제한, 비용 등의 제약이 있는 반면 브이월드는 무료이면서 트래픽제한이 없다.

 (단, 상용서비스의 경우 사전문의해야함)

-OpenLayers 기반.

 OpenLayers 라는 자바스크립트 라이브러리 오픈소스를 이용했다는데 OpenLayers 를 들어본것같긴한데 무엇에 쓰는 물건인지는 정확히 모르겠음. 웹쪽은 워낙 쏟아지는 라이브러리들이 많다보니 뭐가뭔지 모르겠다..

-API 인증키 발급.

 회원가입후 인증키를 발급 받아야 API 사용이 가능하다. 

 인증키 발급시 입력해야하는 URL 에는 서비스 하고자하는 URL 을 입력하면되고

 만약 닷넷기반에서 폼에 지도를 표시하는거라면 "localhost:8000"을 입력하면된다. 

-개발

웹이 아닌 C#, MFC 같은 환경에서는 요청 API 계열만 사용할 수 있고

http://localhost 등과 같은 url로 key를 내려받아 요청API URL에 파라미터로 전송해주면 작동 합니다.

https://www.vworld.kr/v4po_brdqna_s002.do?pageIndex=1&searchCondition=4&searchKeyword=c%23&bodIde=&brdIde=10888&bodCde=QNA&fileCheck=Y&repyCheck=Y

브이월드 api 사용법 - beu-iwoldeu api sayongbeob

-3D 데스크톱 API

브이월드 3D 데스크톱 API(이하 데스크톱 API)는 데스크톱 서비스로만 제공되던 데스크톱의 기능을 사용자가 원하는 형태로 활용할 수 있도록 하는 C/S용 플랫폼입니다.

데스크톱 API는 브이월드에서 제공하는 다양한 국가 공간정보를 모두 수용하고 여러 콘텐츠(장소, 라인, 다각형, 원)의 생성/편집 기능을 제공하고 지도 보기 등 표현 방식을 다양화 하였습니다.

-vw.desktop.Api.dll 은 32bit 용이며 64bit 용은 없다. 

연속지적도 (데이터버전 : 1.0)

  • 지적이란 토지의 위치·형질 및 소유관계를 밝히는 제도를 말하며, 지적법에 의하여 토지에는 1구역마다 지번을 붙이고, 그에 대한 지목·경계로 구분한다.

요청 URL

요청 URL
http://api.vworld.kr/req/data
브이월드 api 사용법 - beu-iwoldeu api sayongbeob
https나 Flex 등 웹뷰어가 아닌 브라우저에서의 API사용은 요청URL에 도메인정보를 추가하여 서비스를 이용합니다.

예) http://api.vworld.kr/req/data?service=data&request=GetFeature&data=LP_PA_CBND_BUBUN&key=인증키&domain=인증키 URL&[요청파라미터]

연속지적도 속성정보

연속지적도 속성정보
속성명단일검색*샘플데이터설명

*단일검색=Y : geomFilter 없이도 해당속성명이 포함된 attrFilter만으로 검색 가능

오퍼레이션

오퍼레이션
오퍼레이션설명
GetFeature 연속지적도의 도형, 속성 정보를 조회
WFS보다 간결한 형태의 데이터 조회 기능을 제공하며, 복잡한 Query가 필요할 경우 WFS를 사용하도록 권고함
GetFeatureType 연속지적도 데이터의 타입(스키마)을 조회 (서비스 예정)

요청파라미터

요청파라미터
파라미터선택설명유효값
service O/1 요청 서비스명 data(기본값)
version O/1 요청 서비스 버전 2.0(기본값)
request M/1 요청 서비스 오퍼레이션 GetFeature, GetFeatureType
key M/1 발급받은 api key
format O/1 응답결과 포맷 json(기본값), xml
errorFormat O/1 에러 응답결과 포맷, 생략 시 format파라미터에 지정된 포맷으로 설정 json, xml
size O/1 한 페이지에 출력될 응답결과 건수 숫자, default(10), min(1), max(1000)
page O/1 응답결과 페이지 번호 숫자
기본값 : 1
data M/1 조회할 데이터 LP_PA_CBND_BUBUN
geomFilter M/1 지오메트리 필터
포맷  - POINT(x y)  - LINESTRING(x1 y1,x2 y2 [,xn yn])  - POLYGON((x1 y1,x2 y2[,xn yn]))  - MULTIPOLYGON(((x1 y1,x2 y2[,xn yn]))[,((x1 y1,x2 y2 [,xn yn]))])  - BOX(minx,miny,maxx,maxy) ※ 대량 데이터 요청 제한   - polygon, multipolygon, box 경우, 면적이 2km²를 넘지 말아야 한다.
attrFilter O/n 속성조회를 위한 조건검색을 정의
포맷 : 속성명A:연산자A:비교값A|속성명B:연산자B:비교값B
 - 여러 조건은 [|](Shift+\)로 구분하며, 한 조건의 내부는 [:]로 구분함
속성명 : 연산 대상이 되는 필드명
연산자 : =, >=, <=, <, >, <>, BETWEEN(포맷 : min,max), LIKE, IN(포맷 : 값1,값2)
예) attrFilter=uname:like:제2종일반|dyear:between:2000,2015|emdCd:=:41173102
단, 단일검색=Y가 있는 경우에는 해당속성명을 포함할 경우 geomFilter없이 attrFilter만으로 검색 가능
예) attrFilter=pnu:=:검색값
단일검색=Y도 없고 geomFilter도 없을 경우,
emdCd(읍면동코드) 필수
브이월드 api 사용법 - beu-iwoldeu api sayongbeob
읍면동코드 조회
columns O/1 응답결과로 받기를 원하는 컬럼, 생략 시 전체 컬럼 반환 연속지적도 속성정보
geometry O/1 지오메트리 반환 여부 true(기본값), false
attribute O/1 속성 반환 여부 true(기본값), false
buffer O/1 geomFilter파라미터에 입력한 feature를 buffer(거리, 단위:m)만큼 확장 숫자, 기본값:0
crs O/1 응답결과 좌표계 지원좌표계 참고,
EPSG:4326(기본값)
callback O/1 format값이 json일 경우 callback함수를 지원합니다.
domain O/1 https나 Flex 등 웹뷰어가 아닌 브라우저에서의 API사용할 경우
인증키 발급 시 입력한 url을 입력합니다.

* M/1 : 필수 입력, 값은 1개만 입력가능

* O/1 : 선택 입력(입력안하면 기본값 설정), 값은 1개만 입력가능

* O/n : 선택 입력, 쉼표(,)로 구분된 여러개의 값입력 가능. 예)category=1134,112829,11284

응답결과

응답결과
항목명타입설명
service   요청 서비스 정보 Root
  name 문자 요청 서비스명
  version 숫자 요청 서비스 버전
  operation 문자 요청 서비스 오퍼레이션 이름
  time 숫자 응답결과 생성 시간
status 문자 처리 결과의 상태 표시, 유효값 : OK(성공), NOT_FOUND(결과없음), ERROR(에러)
record   응답결과 건수 정보 Root
  total 숫자 전체 결과 건수
  current 숫자 현재 반환된 결과 건수
page   응답결과 페이지 정보 Root
  total 숫자 전체 페이지 수
  current 숫자 현재 페이지 번호
  size 숫자 페이지 당 반환되는 결과 건수
result   응답결과 Root
  연속지적도 속성정보 문자 format이 xml일 경우 GML로, json일 경우 geojson으로 표현

지원좌표계

오퍼레이션
좌표계설명
WGS84 경위도 EPSG:4326
GRS80 경위도 EPSG:4019
Google Mercator EPSG:3857, EPSG:900913
서부원점(GRS80) EPSG:5180(50만), EPSG:5185
중부원점(GRS80) EPSG:5181(50만), EPSG:5186
제주원점(GRS80, 55만) EPSG:5182
동부원점(GRS80) EPSG:5183(50만), EPSG:5187
동해(울릉)원점(GRS80) EPSG:5184(50만), EPSG:5188
UTM-K(GRS80) EPSG:5179

오류 응답결과

오류 응답결과
항목명타입설명
service 문자 요청 서비스 정보 Root
  name 문자 요청 서비스명
  version 숫자 요청 서비스 버전
  operation 문자 요청 서비스 오퍼레이션 이름
  time 숫자 응답결과 생성 시간
status 문자 처리 결과의 상태 표시, 유효값 : OK(성공), NOT_FOUND(결과없음), ERROR(에러)
error 문자 에러 정보 Root
  level 숫자 에러 레벨
  code 문자 에러 코드
  text 문자 에러 메시지

오류메세지

오류메세지
코드레벨메세지비고
PARAM_REQUIRED 1 필수 파라미터인 <%S1>가 없어서 요청을 처리할수 없습니다. %S1 : 파라미터 이름
INVALID_TYPE 1 <%S1> 파라미터 타입이 유효하지 않습니다.
유효한 파라미터 타입 : <%S2>
입력한 파라미터 값 : <%S3>
%S1 : 파라미터 이름
%S2 : 유효한 파라미터 값의 유형
%S3 : 입력한 파라미터 값
INVALID_RANGE 1 <%S1> 파라미터의 값이 유효한 범위를 넘었습니다.
유효한 파라미터 타입 : <%S2>
입력한 파라미터 값 : <%S3>
%S1 : 파라미터 이름
%S2 : 유효한 파라미터 값의 범위
%S3 : 입력한 파라미터 값
INVALID_KEY 2 등록되지 않은 인증키입니다.  
INCORRECT_KEY 2 인증키 정보가 올바르지 않습니다.
(ex. 인증키 발급 시 입력한 도메인이 다를경우)
 
UNAVAILABLE_KEY 2 임시로 인증키를 사용할 수 없는 상태입니다.  
OVER_REQUEST_LIMIT 2 서비스 사용량이 일일 제한량을 초과하여 더 이상 서비스를 사용할 수 없습니다.  
SYSTEM_ERROR 3 시스템 에러가 발생하였습니다.  
UNKNOWN_ERROR 3 알 수 없는 에러가 발생하였습니다.