728x90
반응형
연계한 자료들을 지도에 보여주기 위해 연계가 끝난 뒤 주소정보로 좌표값을 geocoding하여 표출하고자함.
네이버 OpenAPI의 geocoding을 사용하여 포문을 돌면서 좌표를 취득하고 등록함.
try {
//좌표가 없는 마트정보 조회
List<Map<String, Object>> list = dataApiDAO.selectMartList();
if (list != null && list.size() > 0) {
HashMap<String, Object> param = new HashMap<String, Object>();
for ( int j = 0 ; j < list.size(); j++ ) {
//업데이트문에서 사용할 키 저장
param.put("mgtno", list.get(j).get("mgtno"));
String addr = URLEncoder.encode(list.get(j).get("addr").toString(), "utf-8");
String apiUrl = getGeocodingUrl + addr;
StringBuffer sb = new StringBuffer();
URL url = new URL(apiUrl);
HttpsURLConnection http = (HttpsURLConnection) url.openConnection();
http.setRequestProperty("Content-Type", "application/json");
http.setRequestProperty("X-NCP-APIGW-API-KEY-ID", getNaverKeyId);
http.setRequestProperty("X-NCP-APIGW-API-KEY", getNaverKey);
http.setRequestMethod("GET");
http.connect();
InputStreamReader in = new InputStreamReader(http.getInputStream(), "utf-8");
BufferedReader br = new BufferedReader(in);
String line;
while ( (line = br.readLine()) != null ) {
sb.append(line).append("\n");
}
JSONParser parser = new JSONParser();
JSONObject jsonObject;
JSONObject jsonObject2;
JSONArray jsonArray;
String x = "";
String y = "";
jsonObject = (JSONObject) parser.parse(sb.toString());
jsonArray = (JSONArray) jsonObject.get("addresses");
for ( int i = 0; i < jsonArray.size(); i++ ) {
jsonObject2 = (JSONObject) jsonArray.get(i);
System.out.println(jsonObject2);
if ( null != jsonObject2.get("x")) {
x = jsonObject2.get("x").toString();
}
if ( null != jsonObject2.get("y")) {
y = jsonObject2.get("y").toString();
}
}
if (!x.isEmpty() && !y.isEmpty()) {
param.put("y", y);
param.put("x", x);
dataApiDAO.updateMartInfo(param);
}
br.close();
in.close();
}
}
} 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 |
댓글