OpenAPI 형태의 서비스 단위로 제공되는 GEOCODER-XR이 고객의 요구사항에 맞춰 개선되었습니다. 다음과 같이 3가지 내용이 변경되었습니다.
- 지오코딩 결과에 대한 정좌표, 인근좌표, 대표좌표에 대한 구분(기존에는 인근좌표와 대표좌표의 구분이 없었음)
- 결과가 여러 개인 경우 정확도 순서에 따라 정렬해서 모든 결과를 다 제공하도록 변경
- 결과 형식을 JSON으로 변경(기존은 XML 형식였음)
예를들어 주소 중 “중앙동”으로 검색을 하기 위한 REST 방식의 OpenAPI는 다음과 같습니다.
http://localhost:8080/Gp?command=gc;addr=중앙동
위의 호출에 대한 결과는 다음과 같습니다.
[ { "user-input":"중앙동", "full-address":"경기도 성남시 중원구 중앙동", "coordinate":[ 37.43959765091859, 127.1505276103632 ], "vicinity":true, "type":"대표좌표" }, { "user-input":"중앙동", "full-address":"경상남도 통영시 중앙동", "coordinate":[ 34.84482143430977, 128.42308057122085 ], "vicinity":true, "type":"대표좌표" }, { "user-input":"중앙동", "full-address":"경상남도 창원시 진해구 중앙동", "coordinate":[ 35.14902784720422, 128.66126916577852 ], "vicinity":true, "type":"대표좌표" }, ... ]
JSON 형식이며 중앙동이라는 이름의 행정명칭은 우리나라에 여러 개이므로 복수의 결과를 모두 전달하고 vicinity가 true이므로 인근좌표이면서 type을 통해 “대표좌표”라는 것을 파악할 수 있습니다.
이번에는 “중앙로10″으로 호출하기 위해 다음 API를 사용합니다.
http://localhost:8080/Gp?command=gc;addr=중앙로10
결과는 다음과 같습니다.
[ { "user-input":"중앙로10", "full-address":"경기도 가평군 중앙로 10 (가평읍)", "coordinate":[ 37.82638794989058, 127.5132600931772 ], "vicinity":false, "type":"도로명주소" }, { "user-input":"중앙로10", "full-address":"강원도 영월군 중앙로 10 (영월읍)", "coordinate":[ 37.18337775533778, 128.46505641724204 ], "vicinity":false, "type":"도로명주소" }, { "user-input":"중앙로10", "full-address":"강원도 원주시 중앙로 10 (인동)", "coordinate":[ 37.34571078558531, 127.95473309264851 ], "vicinity":false, "type":"도로명주소" }, ... ]
vicinity 값이 false이므로 “정좌표”를 의미합니다.
마지막으로 정확히 1건으로 매칭되는 주소에 대한 경우입니다.
http://localhost:8080/Gp?command=gc;addr=아차산로7나길18
결과는 다음과 같습니다.
[ { "user-input":"아차산로7나길18", "full-address":"서울특별시 성동구 아차산로7나길 18 (성수동2가)", "coordinate":[ 37.54770170889392, 127.05746040023593 ], "vicinity":false, "type":"도로명주소" } ]