ヒント
次のAPIのJavaクライアントライブラリを探している場合は、JavaのクラウドクライアントライブラリのGoogle Maps Platform API(リリース)を参照してください。
新しいAPIは、このクライアントライブラリに追加されません。
Javaを使用しますか?何かをジオコードしたいですか?道順をお探しですか?たぶん方向のマトリックス?このライブラリは、Google Maps API Webサービスをサーバー側の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に依存しています。ロギングセットアップに理にかなっているアダプター依存関係の1つを追加する必要があります。以下の構成サンプルでは、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を表示します。
付属のWebサービスの追加ドキュメントは、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エンジンを使用するには、 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
のrequestHandlerBuilder
へのnew GaeRequestHandler.Builder()
の引数は、GoogleマップサービスのJavaクライアントに、デフォルトのOKHTTP3ベースの戦略ではなく、GoogleアプリエンジンからHTTPリクエストを作成するための適切な呼び出しを利用するように指示します。
再びリクエストの合間に眠らないでください!デフォルトでは、各Webサービスの予想レート制限(通常は無料のユーザーの1秒あたり50クエリ)でリクエストが送信されます。 new GeoApiContext.Builder().queryRateLimit(qps).build()
を使用して、リクエストをスピードアップまたはスローダウンしたい場合は、それを行うこともできます。複数の結果セットを介してページングするときは、最初のリクエストと連続ページの間の遅延を手動で処理する必要があることに注意してください。
断続的な障害が発生したときに自動的に再試行します。つまり、APIから返還可能な5xxエラーが返される場合です。
自動レトリを変更または無効にするには、 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マッププラットフォームサービスを使用しています。このライブラリを介したGoogleマッププラットフォームサービスの使用は、Googleマッププラットフォームサービスの対象となります。
このライブラリは、Googleマッププラットフォームコアサービスではありません。したがって、Google Maps Platformの利用規約(テクニカルサポートサービス、サービスレベル契約、DepRecationポリシーなど)は、このライブラリのコードには適用されません。
このライブラリは、オープンソースライセンスを介して提供されます。 Google Maps Platform Support Support Technical Support Servicesガイドライン、SLA、または非推奨ポリシーには管理されていません(ただし、ライブラリが使用するGoogle Mapsプラットフォームサービスは、Google Maps Platform Service of Serviceの対象となります)。
このライブラリは、セマンティックバージョンに準拠して、後方に容易な変更が導入される時期を示します。したがって、ライブラリはバージョン0.xにありますが、逆方向に不可能な変更がいつでも導入される場合があります。
バグが見つかった場合、または機能リクエストがある場合は、GitHubに問題を提出してください。他のGoogleマッププラットフォーム開発者から技術的な質問への回答を取得したい場合は、開発者コミュニティチャネルの1つを尋ねてください。貢献したい場合は、GitHubリポジトリの寄稿ガイドをご覧ください。