[java] Geocoder을 이용해 주소를 위도/경도로 변환하기Language/Java2022. 8. 30. 09:32
Table of Contents
반응형
Geocoding 이란 주소를 위도, 경도로 변환해 주는 Google에서 제공하는 API입니다.
링크 : 지오코딩이란?
처음엔 HttpURLConnection
으로 접속해서 InputStreamReader
로 읽은 후 JSON으로 파싱 하게 만들었는데 해외 사이트에 geocoder 라이브러리를 이용하여 받아오는 예제가 있었다. 어쨌든 더 편리하고 깔끔하게 해결되었습니다.
Geocoder Maven dependency
<dependency>
<groupId>com.google.code.geocoder-java</groupId>
<artifactId>geocoder-java</artifactId>
<version>0.16</version>
</dependency>
Method
public static Float[] findGeoPoint(String location) {
if (location == null)
return null;
// setAddress : 변환하려는 주소 (경기도 성남시 분당구 등)
// setLanguate : 인코딩 설정
GeocoderRequest geocoderRequest = newGeocoderRequestBuilder().setAddress(location).setLanguage("ko").getGeocoderRequest();
try {
Geocoder geocoder = new Geocoder();
GeocodeResponse geocoderResponse = geocoder.geocode(geocoderRequest);
if (geocoderResponse.getStatus() == GeocoderStatus.OK & !geocoderResponse.getResults().isEmpty()) {
GeocoderResult geocoderResult=geocoderResponse.getResults().iterator().next();
LatLng latitudeLongitude = geocoderResult.getGeometry().getLocation();
Float[] coords = new Float[2];
coords[0] = latitudeLongitude.getLat().floatValue();
coords[1] = latitudeLongitude.getLng().floatValue();
return coords;
}
} catch (IOException ex) {
ex.printStackTrace();
}
return null;
}
latitudeLongitude.getLat().floatValue();
이 부분은 floart 형이 아닌 toString()으로도 가능합니다.
테스트
String location = "대전광역시 유성구 궁동";
Float[] coords = CommonUtil.findGeoPoint(location);
System.out.println(location + ": " + coords[0] + ", " + coords[1]);
결과
대전광역시 유성구 궁동 : 36.366701, 127.344510
반응형
'Language > Java' 카테고리의 다른 글
[JAVA] 동네예보 조회서비스 API 사용 방법 (0) | 2022.09.12 |
---|---|
[JAVA] 농업기상정보 서비스 API 사용 방법 (0) | 2022.09.11 |
[JAVA] OpenWeather API 사용 방법 (0) | 2022.09.11 |
[JAVA] proj4 투형 변환 (0) | 2022.09.11 |
[JAVA] Julian Date Conversion (0) | 2022.09.10 |
@고지니어스 :: 규니의 개발 블로그
IT 기술과 개발 내용을 포스팅하는 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!