Tip
Jika Anda mencari perpustakaan klien Java untuk API berikut, lihat API platform Google Maps di perpustakaan klien cloud untuk Java (rilis).
API baru tidak akan ditambahkan ke perpustakaan klien ini.
Gunakan java? Ingin geocode sesuatu? Mencari petunjuk arah? Mungkin matriks arah? Perpustakaan ini membawa layanan web API Google Maps ke aplikasi Java sisi server Anda.
Klien Java untuk Google Maps Services adalah Perpustakaan Klien Java untuk API Google Maps berikut:
Klien Java untuk Google Maps Services dirancang untuk digunakan di aplikasi server dan Android. Dalam kedua kasus tersebut, penting untuk menambahkan pembatasan kunci API untuk meningkatkan keamanan kunci API Anda. Langkah -langkah keamanan tambahan, seperti menyembunyikan kunci Anda dari kontrol versi, juga harus diberlakukan untuk lebih meningkatkan keamanan kunci API Anda.
Anda dapat merujuk pada praktik terbaik keamanan API untuk mempelajari lebih lanjut tentang topik ini.
Catatan
Jika Anda menggunakan pustaka ini di Android, pastikan aplikasi Anda menggunakan setidaknya versi 0.19.0 dari perpustakaan ini sehingga pembatasan kunci API dapat ditegakkan.
Anda dapat menambahkan perpustakaan ke proyek Anda melalui Maven atau Gradle.
Catatan
Karena 0,1,18 sekarang ada ketergantungan pada SLF4J. Anda perlu menambahkan salah satu dependensi adaptor yang masuk akal untuk pengaturan logging Anda. Dalam sampel konfigurasi di bawah ini kami mengintegrasikan slf4j-nop, tetapi ada yang lain seperti slf4j-log4j12 dan slf4j-jdk14 yang akan lebih masuk akal dalam konfigurasi lain. Ini akan menghentikan pesan peringatan yang dipancarkan ketika Anda mulai menggunakan 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 '
}
Anda dapat menemukan versi terbaru di bagian atas readme ini atau dengan mencari Maven Central.
Lihat Javadoc.
Dokumentasi tambahan untuk layanan web yang disertakan tersedia di https://developers.google.com/maps/.
Contoh ini menggunakan API geocoding dengan kunci 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 ();
Catatan: GeoApiContext
dirancang untuk menjadi singleton di aplikasi Anda. Harap instantiate satu pada startup aplikasi, dan terus gunakan untuk kehidupan aplikasi Anda. Ini akan memungkinkan penegakan QPS yang tepat di semua permintaan Anda.
Pada akhir eksekusi, hubungi metode shutdown()
GeoApiContext
, jika tidak utas akan tetap dipakai dalam memori.
Untuk contoh penggunaan lebih lanjut, lihat tesnya.
Untuk menggunakan Google App Engine dengan Perpustakaan Klien ini Tambahkan ketergantungan mesin aplikasi terbaru ke file build.gradle
Anda:
dependencies {
implementation ' com.google.appengine:appengine-api-1.0-sdk:<latest version> '
}
Anda kemudian dapat menggunakan pustaka klien ini di Google App Engine dengan perubahan kode berikut:
new GeoApiContext . Builder ( new GaeRequestHandler . Builder ())
. apiKey ( "AIza..." )
. build ();
Argumen new GaeRequestHandler.Builder()
untuk GeoApiContext.Builder
's requestHandlerBuilder
memberi tahu klien Java untuk layanan Google Maps untuk memanfaatkan panggilan yang sesuai untuk membuat permintaan HTTP dari Google App Engine, alih -alih strategi berbasis OKHTTP3 default.
Jangan pernah tidur di antara permintaan lagi! Secara default, permintaan dikirim pada batas tingkat yang diharapkan untuk setiap layanan Web, biasanya 50 kueri per detik untuk pengguna gratis. Jika Anda ingin mempercepat atau memperlambat permintaan, Anda dapat melakukannya juga, menggunakan new GeoApiContext.Builder().queryRateLimit(qps).build()
. Perhatikan bahwa Anda masih perlu menangani keterlambatan secara manual antara permintaan awal dan halaman berturut -turut saat Anda melakukan paging melalui beberapa set hasil.
Coba lagi secara otomatis ketika kegagalan intermiten terjadi. Artinya, ketika salah satu kesalahan 5xx yang dapat diambil dikembalikan dari API.
Untuk mengubah atau menonaktifkan penitipan ulang otomatis, lihat metode ini di GeoApiContext
:
.disableRetries()
.maxRetries()
.retryTimeout()
.setIfExceptionIsAllowedToRetry()
Objek asli untuk masing -masing respons API.
Semua permintaan mendukung gaya panggilan sinkron atau asinkron.
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.
}
});
Catatan
Anda akan memerlukan kunci API untuk menjalankan tes.
# Compile and package the project
$ ./gradlew jar
# Run the tests
$ ./gradlew test
Perpustakaan ini menggunakan layanan platform Google Maps. Penggunaan layanan platform Google Maps melalui perpustakaan ini tunduk pada persyaratan layanan platform Google Maps.
Perpustakaan ini bukan layanan inti platform Google Maps. Oleh karena itu, Ketentuan Layanan Platform Google MAPS (misalnya Layanan Dukungan Teknis, Perjanjian Tingkat Layanan, dan Kebijakan Dusunisasi) tidak berlaku untuk kode di perpustakaan ini.
Perpustakaan ini ditawarkan melalui lisensi open source. Ini tidak diatur oleh Pedoman Layanan Dukungan Dukungan Teknis Google Maps Platform, SLA, atau Kebijakan Deprecation (namun, setiap layanan platform Google Maps yang digunakan oleh perpustakaan tetap tunduk pada Platform Layanan Google Maps).
Perpustakaan ini menganut versi semantik untuk menunjukkan ketika perubahan yang tidak kompatibel di belakang diperkenalkan. Dengan demikian, sementara perpustakaan berada di versi 0.x, perubahan yang tidak kompatibel ke belakang dapat diperkenalkan kapan saja.
Jika Anda menemukan bug, atau memiliki permintaan fitur, silakan mengajukan masalah di GitHub. Jika Anda ingin mendapatkan jawaban atas pertanyaan teknis dari pengembang platform Google Maps lainnya, tanyakan melalui salah satu saluran komunitas pengembang kami. Jika Anda ingin berkontribusi, silakan periksa panduan yang berkontribusi di repositori GitHub.