Anda sudah siap!

Untuk mulai mengembangkan, masuklah ke dokumentasi developer kami.

Aktifkan Google Maps Geocoding API

Untuk membantu Anda memulai, kami akan memandu Anda melalui Google Developers Console untuk melakukan beberapa hal terlebih dahulu:

  1. Buat atau pilih sebuah proyek
  2. Aktifkan Google Maps Geocoding API
  3. Buat kunci yang sesuai
Lanjutkan

Mengoptimalkan Penggunaan Kuota Saat Geocoding

Geocoding adalah proses konversi alamat ("1600 Amphitheatre Parkway, Mountain View, CA") menjadi koordinat geografis (37.423021, -122.083739), yang bisa Anda gunakan untuk menempatkan marker atau memosisikan peta. Google Maps API menyediakan dua pendekatan terhadap geocoding:

  • Geocoding sisi-klien, yang dieksekusi di browser, umumnya sebagai respons terhadap aksi pengguna. Google Maps JavaScript API menyediakan kelas-kelas yang membuat permintaan untuk Anda. Pendekatan ini dijelaskan dalam dokumentasi Google Maps JavaScript API.
  • Geocoding sisi-server HTTP, yang memungkinkan server Anda melakukan kueri geocode langsung ke server Google. Google Maps Geocoding API adalah layanan web yang menyediakan fungsionalitas ini. Biasanya, Anda mengintegrasikan layanan ini bersama kode lain yang menjalankan sisi-server. Geocoding sisi-server dijelaskan dalam dokumentasi Google Maps Geocoding API.

Contoh geocoding sisi-klien dan sisi-server

Inilah contoh geocoding sisi-klien yang mengambil sebuah alamat, membuat geocode-nya, memindah pusat peta ke lokasi itu, dan menambahkan marker peta di sana:

geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address }, function(results, status) {
  if (status == google.maps.GeocoderStatus.OK) {
    map.setCenter(results[0].geometry.location);
    var marker = new google.maps.Marker({
      map: map,
      position: results[0].geometry.location
    });
  }
});

Untuk contoh selengkapnya, lihat dokumentasi Google Maps JavaScript API.

Inilah contoh penggunaan Python untuk melakukan permintaan a geocoding sisi-server:

import urllib2

address="1600+Amphitheatre+Parkway,+Mountain+View,+CA"
key="my-key-here"
url="https://maps.googleapis.com/maps/api/geocode/json?address=%s&key=%s" % (address, key)

response = urllib2.urlopen(url)
jsongeocode = response.read()

Ini menghasilkan objek JSON dengan materi berikut:

{
  "status": "OK",
  "results": [ {
    "types": street_address,
    "formatted_address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
    "address_components": [ {
      "long_name": "1600",
      "short_name": "1600",
      "types": street_number
    }, {
      "long_name": "Amphitheatre Pkwy",
      "short_name": "Amphitheatre Pkwy",
      "types": route
    }, {
      "long_name": "Mountain View",
      "short_name": "Mountain View",
      "types": [ "locality", "political" ]
    }, {
      "long_name": "San Jose",
      "short_name": "San Jose",
      "types": [ "administrative_area_level_3", "political" ]
    }, {
      "long_name": "Santa Clara",
      "short_name": "Santa Clara",
      "types": [ "administrative_area_level_2", "political" ]
    }, {
      "long_name": "California",
      "short_name": "CA",
      "types": [ "administrative_area_level_1", "political" ]
    }, {
      "long_name": "United States",
      "short_name": "US",
      "types": [ "country", "political" ]
    }, {
      "long_name": "94043",
      "short_name": "94043",
      "types": postal_code
    } ],
    "geometry": {
      "location": {
        "lat": 37.4220323,
        "lng": -122.0845109
      },
      "location_type": "ROOFTOP",
      "viewport": {
        "southwest": {
          "lat": 37.4188847,
          "lng": -122.0876585
        },
        "northeast": {
          "lat": 37.4251799,
          "lng": -122.0813633
        }
      }
    }
  } ]
}

Geocoder sisi-server juga menyediakan format XML sebagai alternatif JSON. Untuk contoh selengkapnya, lihat dokumentasi Google Maps Geocoding API dan pustaka klien untuk Python dan bahasa lainnya.

Pertimbangan kuota

Kuota geocoding dan batas kecepatan akan menentukan strategi yang dijelaskan dalam dokumen ini.

Saat menggunakan standard plan, semua permintaan geocoding, baik berupa sisi-klien melalui browser atau sisi-server melalui layanan web Google Maps Geocoding API, memiliki kuota 2.500 permintaan per hari. Semua permintaan dalam satu hari dihitung terhadap kuota untuk proyek Anda. Untuk mengakses kuota harian yang lebih tinggi, aktifkan penagihan pay-as-you-go seperti yang dijelaskan dalam panduan untuk batas penggunaan.

Di samping batas kuota harian, layanan geocoding dibatasi kecepatannya 50 QPS (kueri per detik), yang dihitung sebagai jumlah kueri sisi-klien dan sisi-server.

Saat menjalankan permintaan geocoding sisi-klien pada interval berkala, misalnya di aplikasi seluler, permintaan Anda mungkin mengembalikan kesalahan jika semua pengguna membuat permintaan pada waktu yang sama (misalnya, semua pada detik yang sama setiap menit). Untuk menghindarinya, pertimbangkan salah satu dari berikut ini:

  • Gunakan strategi caching.
  • Tambahkan interval acak pada permintaan Anda (geletar). Pastikan permintaan acak di seluruh basis pengguna Anda.
  • Jika mengembangkan untuk Android, gunakan alarm berulang berubah-ubah.
  • Jika mengembangkan untuk Android, pilih strategi lokasi yang sesuai.

Untuk pelanggan Google Maps APIs Premium Plan, API menawarkan kuota harian yang lebih tinggi. Untuk mengetahui selengkapnya tentang kuota Google Maps APIs Premium Plan, lihat panduan untuk batas dan biaya penggunaan Premium Plan. Jika Anda tetap terbentur pada batas kuota menggunakan Google Maps APIs Premium Plan, laporkan permintaan dukungan pada Google Cloud Support Portal.

Pertimbangan caching

Ketentuan Layanan Google Maps API memungkinkan Anda meng-cache geocode (yaitu, menyimpannya pada server selama periode terbatas). Caching bisa berguna jika Anda harus berulang-ulang mencari alamat yang sama. Akan tetapi, ingatlah bahwa hasil geocoding akan berubah karena data kami akan semakin banyak dan semakin akurat. Jadi bahkan jika Anda meng-cache data, Anda harus memperbaruinya secara berkala, untuk memastikan Anda mendapatkan geocode terbaik bagi lokasi Anda.

Kapan menggunakan geocoding sisi-klien

Jawabannya singkat "hampir selalu". Alasannya adalah:

  • Respons dan permintaan sisi-klien menyediakan pengalaman lebih cepat dan lebih interaktif bagi pengguna.
  • Permintaan sisi-klien bisa menyertakan informasi yang memperbaiki kualitas geocoding: bahasa pengguna, region, dan tampilan yang terlihat.

Khususnya, geocoding sisi-klien adalah yang terbaik bila geocoding alamat berdasarkan masukan dari pengguna.

Ada dua arsitektur dasar bagi geocoding sisi-klien:

  • Lakukan geocoding dan tampilkan seluruhnya di browser. Sebagai contoh, pengguna memasukkan alamat di laman Anda. Aplikasi Anda akan meng-geocode-nya. Kemudian laman Anda menggunakan geocode untuk membuat marker pada peta tersebut. Atau aplikasi Anda melakukan semacam analisis sederhana dengan geocode. Tidak ada data yang dikirim ke server Anda. Ini akan mengurangi beban di server Anda.
  • Lakukan geocoding di browser kemudian kirim ke server. Sebagai contoh, pengguna memasukkan alamat di laman Anda. Aplikasi Anda akan meng-geocode-nya di browser. Aplikasi kemudian mengirim data ke server Anda. Server merespons dengan sejumlah data, misalnya tempat menarik terdekat. Ini memungkinkan Anda menyesuaikan respons berdasarkan data Anda sendiri, juga meng-cache geocode jika Anda inginkan. Caching memungkinkan Anda mengoptimalkan lebih jauh lagi. Misalnya, Anda bisa membuat kueri ke server dengan alamat, untuk mengetahui apakah Anda memiliki geocode yang baru saja di-cache untuk kueri. Jika Anda tidak mendapati hasil di cache, maka kembalikan tanpa hasil ke browser, dan biarkan hasilnya di-geocode dan dikirim kembali ke server untuk caching.

Kapan menggunakan geocoding sisi-server

Geocoding sisi-server paling tepat digunakan untuk aplikasi yang mengharuskan Anda meng-geocode alamat tanpa masukan dari klien. Contoh umum adalah bila Anda mengambil kumpulan data yang asalnya tidak bergantung pada masukan pengguna, misalnya jika Anda memiliki set alamat yang tetap, terbatas, dan diketahui yang membutuhkan geocoding. Geocoding sisi-server jkuga bisa digunakan sebagai cadangan bila geocoding sisi-klien gagal.

Beberapa persoalan yang mungkin adalah peningkatan yang tidak perlu di latensi bagi pengguna, dan hasil geocoding yang lebih rendah kualitasnya dari sisi-klien karena kurangnya informasi yang tersedia dalam permintaan.

Arsitektur dasar untuk aplikasi geocoding sisi-server adalah sebagai berikut:

  • Aplikasi berbasis server mengirim alamat ke skrip geocoding server.
  • Skrip akan memeriksa cache untuk mengetahui apakah alamat baru saja di-geocode.
  • Jika ya, skrip akan mengembalikan hasilnya ke aplikasi asal.
  • Jika tidak, skrip akan mengirim permintaan geocoding ke Google. Setelah didapat, hasilnya akan di-cache, kemudian hasilnya dikembalikan ke aplikasi asal.

Kesimpulan

Umumnya, kombinasi geocoding sisi-klien dan caching paling sesuai dengan kebutuhan Anda. Jika Anda mengalami masalah kuota, pertimbangkan mengaktifkan penagihan atau membeli lisensi Premium Plan.

Kirim masukan tentang...

Google Maps Geocoding API
Google Maps Geocoding API
Butuh bantuan? Kunjungi halaman dukungan kami.