728x90
반응형
연계한 정보의 좌표정보로 법정동정보를 취득하기 위해 네이버 리버스 지오코딩을 이용하여 법정동 정보 저장.
좌표계정보는 기본값이 epsg:4326이여서 기본값으로 호출함.
URL 에 orders=legalcode,addr,admcode,roadaddr 부분을 수정하면 법정동코드, 지번주소, 행정동코드, 도로명주소 정보도 같이 받을수 있음.
try {
//법정동코드가없는 전철역 정보 조회
List<Map<String, Object>> list = dataApiDAO.selectSubwayList();
if (list != null && list.size() > 0) {
HashMap<String, Object> param = new HashMap<String, Object>();
for ( int j = 0 ; j < list.size(); j++ ) {
//업데이트를 하기위해 키값 저장
param.put("statnId", list.get(j).get("statnId"));
String addr = URLEncoder.encode(list.get(j).get("x").toString() + ","+list.get(j).get("y").toString(), "utf-8");
HttpClient client = HttpClientBuilder.create().build();
HttpGet getRequest = new HttpGet(getReverseGeocodingUrl + addr + "&output=json&orders=legalcode");
getRequest.setHeader("X-NCP-APIGW-API-KEY-ID", getNaverKey);
getRequest.setHeader("X-NCP-APIGW-API-KEY", getNaverClientId);
HttpResponse response = client.execute(getRequest);
//Response 출력
if (response.getStatusLine().getStatusCode() == 200) {
ResponseHandler<String> handler = new BasicResponseHandler();
String body = handler.handleResponse(response);
ObjectMapper mapper = new ObjectMapper();
JsonNode bodyJson = mapper.readTree(body);
System.out.println(bodyJson);
if (bodyJson.get("results") != null) {
param.put("lglDongCd", bodyJson.get("results").get(0).get("code").get("id").asText());
dataApiDAO.updateStationPosInfo(param);
}
}
}
}
} catch (Exception e ) {
e.printStackTrace();
}
728x90
반응형
'개발 > GIS' 카테고리의 다른 글
[저장용] 네이버지오코딩(javascript) (0) | 2022.12.20 |
---|---|
[저장용] 네이버 지오코딩(JAVA) (0) | 2022.12.20 |
[저장용]네이버 길찾기 팝업 (0) | 2022.11.24 |
[저장용]QGIS를 이용하여 shape 파일로 좌표 취득하기 (0) | 2022.09.22 |
[저장용]QGIS 오라클 DB 연결 (0) | 2022.09.19 |
댓글