팁
다음 API의 Java 클라이언트 라이브러리를 찾고 있다면 Java 용 Cloud Client Libraries (릴리스)의 Google Maps 플랫폼 API를 참조하십시오.
새로운 API는이 클라이언트 라이브러리에 추가되지 않습니다.
Java를 사용 하시겠습니까? geocode 뭔가를 원하십니까? 지시를 찾고 계십니까? 방향의 매트릭스? 이 라이브러리는 Google Maps API 웹 서비스를 서버 측 Java 응용 프로그램에 제공합니다.
Google Maps Services의 Java 클라이언트는 다음 Google지도 API의 Java 클라이언트 라이브러리입니다.
Google Maps Services 용 Java 클라이언트는 서버 및 Android 응용 프로그램 모두에서 사용하도록 설계되었습니다. 두 경우 모두 API 키의 보안을 향상시키기 위해 API 키 제한을 추가하는 것이 중요합니다. 버전 제어에서 키를 숨기는 것과 같은 추가 보안 조치도 API 키의 보안을 더욱 향상시키기 위해 시행해야합니다.
이 주제에 대한 자세한 내용은 API 보안 모범 사례를 참조 할 수 있습니다.
메모
Android 에서이 라이브러리를 사용하는 경우 응용 프로그램 이이 라이브러리의 최소 0.19.0 버전을 사용하여 API 키 제한을 시행 할 수 있는지 확인하십시오.
Maven 또는 Gradle을 통해 프로젝트에 라이브러리를 추가 할 수 있습니다.
메모
0.1.18 이후로 SLF4J에 의존성이 있습니다. 로깅 설정에 적합한 어댑터 종속성 중 하나를 추가해야합니다. 아래 구성 샘플에서는 SLF4J-NOP를 통합하고 있지만 SLF4J-LOG4J12 및 SLF4J-JDK14와 같은 다른 구성에서 더 적합한 것들이 있습니다. google-maps-services
사용하기 시작하면 경고 메시지가 방출됩니다.
< dependency >
< groupId >com.google.maps</ groupId >
< artifactId >google-maps-services</ artifactId >
< version >(insert latest version)</ version >
</ dependency >
< dependency >
< groupId >org.slf4j</ groupId >
< artifactId >slf4j-simple</ artifactId >
< version >1.7.25</ version >
</ dependency >
repositories {
mavenCentral()
}
dependencies {
implementation ' com.google.maps:google-maps-services:(insert latest version) '
implementation ' org.slf4j:slf4j-simple:1.7.25 '
}
이 readme 상단 또는 Maven Central을 검색하여 최신 버전을 찾을 수 있습니다.
Javadoc을보십시오.
포함 된 웹 서비스에 대한 추가 문서는 https://developers.google.com/maps/에서 확인할 수 있습니다.
이 예제는 API 키와 함께 지오 코딩 API를 사용합니다.
GeoApiContext context = new GeoApiContext . Builder ()
. apiKey ( "AIza..." )
. build ();
GeocodingResponse response = GeocodingApi . geocode ( context ,
"1600 Amphitheatre Parkway Mountain View, CA 94043" ). await ();
Gson gson = new GsonBuilder (). setPrettyPrinting (). create ();
System . out . println ( gson . toJson ( response . results [ 0 ]. addressComponents ));
// Invoke .shutdown() after your application is done making requests
context . shutdown ();
참고 : GeoApiContext
는 응용 프로그램에서 싱글 톤으로 설계되었습니다. 응용 프로그램 시작시 하나를 인스턴스화하고 응용 프로그램 수명에 계속 사용하십시오. 이를 통해 모든 요청에 따라 적절한 QPS 시행이 가능합니다.
실행이 끝나면 GeoApiContext
의 shutdown()
메소드를 호출하십시오. 그렇지 않으면 스레드가 메모리에서 인스턴스화됩니다.
더 많은 사용 예를 보려면 테스트를 확인하십시오.
이 클라이언트 라이브러리와 함께 Google App Engine을 사용하려면 build.gradle
파일에 최신 앱 엔진 종속성을 추가하십시오.
dependencies {
implementation ' com.google.appengine:appengine-api-1.0-sdk:<latest version> '
}
그런 다음 다음 코드 변경으로 Google App Engine 에서이 클라이언트 라이브러리를 사용할 수 있습니다.
new GeoApiContext . Builder ( new GaeRequestHandler . Builder ())
. apiKey ( "AIza..." )
. build ();
GeoApiContext.Builder
에 대한 new GaeRequestHandler.Builder()
requestHandlerBuilder
Google Maps 서비스의 Java 클라이언트에게 기본 OKHTTP3 기반 전략 대신 Google App 엔진에서 HTTP 요청을하기위한 적절한 호출을 활용하도록 지시합니다.
다시 요청 사이에 자지 마십시오! 기본적으로 요청은 각 웹 서비스에 대한 예상 속도 제한으로 전송됩니다. 일반적으로 무료 사용자의 경우 초당 50 개의 쿼리입니다. 요청 속도를 높이거나 속도를 늦추려면 new GeoApiContext.Builder().queryRateLimit(qps).build()
사용하여이를 수행 할 수 있습니다. 여러 결과 세트를 통해 페이징 할 때 초기 요청과 연속 페이지 간의 지연을 수동으로 처리해야합니다.
간헐적 실패가 발생하면 자동으로 재 시도합니다. 즉, Retriable 5xx 오류 중 어느 것이 API에서 반환 될 때.
자동 회수를 변경하거나 비활성화하려면 GeoApiContext
에서이 방법을 참조하십시오.
.disableRetries()
.maxRetries()
.retryTimeout()
.setIfExceptionIsAllowedToRetry()
각 API 응답에 대한 기본 객체.
모든 요청은 동기 또는 비동기 통화 스타일을 지원합니다.
GeocodingApiRequest req = GeocodingApi . newRequest ( context ). address ( "Sydney" );
// Synchronous
try {
req . await ();
// Handle successful request.
} catch ( Exception e ) {
// Handle error
}
req . awaitIgnoreError (); // No checked exception.
// Async
req . setCallback ( new PendingResult . Callback < GeocodingResponse >() {
@ Override
public void onResult ( GeocodingResponse result ) {
// Handle successful request.
}
@ Override
public void onFailure ( Throwable e ) {
// Handle error.
}
});
메모
테스트를 실행하려면 API 키가 필요합니다.
# Compile and package the project
$ ./gradlew jar
# Run the tests
$ ./gradlew test
이 라이브러리는 Google Maps 플랫폼 서비스를 사용합니다. 이 라이브러리를 통한 Google Maps 플랫폼 서비스 사용은 Google Maps 플랫폼 서비스 이용 약관의 적용을받습니다.
이 라이브러리는 Google Maps 플랫폼 핵심 서비스가 아닙니다. 따라서 Google Maps 플랫폼 서비스 약관 (예 : 기술 지원 서비스, 서비스 수준 계약 및 감가 상각 정책) 은이 라이브러리의 코드에 적용되지 않습니다.
이 라이브러리는 오픈 소스 라이센스를 통해 제공됩니다. Google Maps 플랫폼 지원 기술 지원 서비스 지침, SLA 또는 감가 상각 정책 (Library에서 사용하는 Google Maps 플랫폼 서비스는 Google Maps 플랫폼 서비스 이용 약관에 따라 유지됨)의 관리가 아닙니다.
이 라이브러리는 Semantic Versionsing을 준수하여 거꾸로 호환되지 않는 변경 사항이 도입되는 시점을 나타냅니다. 따라서 라이브러리는 0.x 버전이지만 언제든지 뒤로 호환되지 않는 변경 사항이 도입 될 수 있습니다.
버그가 있거나 기능 요청이 있으면 GitHub에 문제를 제기하십시오. 다른 Google Maps 플랫폼 개발자로부터 기술적 인 질문에 대한 답변을 얻으려면 개발자 커뮤니티 채널 중 하나를 문의하십시오. 기여하려면 Github 저장소의 기고 안내서를 확인하십시오.