Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Geocoding adalah proses konversi alamat ("1600
Amphitheatre Parkway, Mountain View, CA") ke koordinat geografis
(37.423021, -122.083739), yang dapat Anda gunakan untuk
penanda atau memosisikan peta. API Google Maps Platform menyediakan dua
terhadap geocoding:
Geocoding sisi klien,
yang dijalankan di {i>browser<i}, umumnya di
respons terhadap tindakan pengguna. Maps JavaScript API menyediakan
yang membuat permintaan untuk Anda. Pendekatan ini dijelaskan dalam
Maps JavaScript API
dokumentasi tambahan.
Geocoding sisi server HTTP,
yang memungkinkan server
Anda untuk secara langsung mengkueri
Server Google untuk geocode. Geocoding API adalah layanan web
yang menyediakan fungsi ini. Biasanya, Anda mengintegrasikan
layanan Anda dengan kode lain
yang berjalan di sisi server. Geocoding sisi server
dijelaskan dalam
API Geocoding
dokumentasi tambahan.
Contoh geocoding sisi-klien dan sisi-server
Berikut adalah contoh geocoding sisi klien yang membutuhkan
, melakukan geocode-nya, menggerakkan pusat peta ke lokasi itu, dan menambahkan sebuah
penanda peta di sana:
Geocoder sisi server juga menyediakan format XML sebagai alternatif untuk
JSON. Untuk contoh lainnya, lihat
API Geocoding
dokumentasi dan
library klien untuk Python
dan bahasa lainnya.
Pertimbangan kuota dan biaya
Biaya, kuota, dan batas kapasitas geocoding mendorong strategi yang diuraikan dalam
dokumen.
Layanan geocoding dibatasi kecepatannya hingga 3.000 QPM (kueri per menit),
yang dihitung sebagai jumlah kueri
sisi klien dan sisi server.
Saat menjalankan permintaan geocoding sisi klien pada interval berkala, seperti
dalam aplikasi seluler, permintaan Anda dapat mengembalikan pesan {i>error<i} jika semua pengguna Anda
membuat permintaan pada saat yang sama (misalnya, semua pada detik yang sama dari
menit). Untuk menghindarinya, pertimbangkan salah satu dari berikut ini:
Tambahkan interval acak pada permintaan Anda (geletar). Memastikan permintaan
acak di seluruh
basis pengguna Anda.
Jika mengembangkan untuk Android, gunakan atribut inexact
berulang.
Jawaban singkatnya adalah "hampir selalu". Alasannya adalah:
Permintaan dan respons sisi klien memberikan layanan
interaktif bagi pengguna.
Permintaan sisi klien bisa menyertakan informasi yang meningkatkan geocoding
kualitas: bahasa pengguna, wilayah, dan area pandang.
Khususnya, geocoding sisi klien adalah yang terbaik saat melakukan geocoding alamat
berdasarkan input dari pengguna.
Ada dua arsitektur dasar bagi geocoding sisi-klien:
Lakukan geocoding dan tampilkan seluruhnya di browser. Contohnya,
pengguna memasukkan alamat di halaman Anda. Aplikasi Anda akan meng-geocode-nya. Selanjutnya
halaman Anda menggunakan geocode untuk membuat penanda pada peta. Atau aplikasi Anda melakukan
analisis sederhana
menggunakan 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. Permohonan Anda
akan melakukan geocoding terhadapnya di browser. Aplikasi kemudian mengirim data ke server Anda. Tujuan
server merespons dengan beberapa data, seperti lokasi menarik di sekitar. Ini
memungkinkan Anda menyesuaikan respons
berdasarkan data Anda sendiri.
Kapan menggunakan geocoding sisi-server
Geocoding sisi-server paling tepat digunakan untuk aplikasi yang
mengharuskan Anda melakukan geocoding terhadap alamat tanpa input dari klien. Contoh umum
adalah ketika Anda mendapatkan {i>dataset<i} yang
tidak bergantung pada input pengguna,
misalnya jika Anda memiliki serangkaian
data yang tetap, terbatas, dan diketahui
yang memerlukan geocoding. Geocoding sisi server bisa
juga berguna sebagai cadangan bila geocoding sisi-klien gagal.
Beberapa masalah yang mungkin terjadi adalah
peningkatan latensi yang tidak perlu bagi pengguna,
dan hasil geocoding yang kualitasnya lebih rendah dari sisi klien karena lebih
informasi apa pun tersedia
dalam permintaan.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-09-05 UTC."],[[["\u003cp\u003eGeocoding transforms addresses into geographic coordinates for map placement, offered through client-side (browser-based) and server-side (HTTP) approaches by the Google Maps Platform.\u003c/p\u003e\n"],["\u003cp\u003eClient-side geocoding, ideal for user-input addresses, provides a faster experience and leverages user context for improved accuracy.\u003c/p\u003e\n"],["\u003cp\u003eServer-side geocoding is suitable for geocoding pre-defined address datasets or as a fallback when client-side geocoding fails.\u003c/p\u003e\n"],["\u003cp\u003eGoogle Maps Platform's geocoding service is rate limited to 3,000 queries per minute, and each request is billed individually.\u003c/p\u003e\n"],["\u003cp\u003eConsider caching, request staggering, or inexact repeating alarms to manage costs and avoid rate limits, especially in high-frequency scenarios.\u003c/p\u003e\n"]]],["Geocoding converts addresses to geographic coordinates. Google Maps offers client-side (browser-based) and server-side (direct server queries) approaches. Client-side geocoding, preferred for user input, utilizes the Maps JavaScript API, as seen in the provided JavaScript example. Server-side geocoding, via the Geocoding API, is ideal for pre-existing datasets or as a client-side backup, and shown in the Python example that return a JSON format. Geocoding is rate-limited to 3,000 queries per minute and incurs a per-request cost.\n"],null,["Geocoding is the process of converting addresses (\"1600\nAmphitheatre Parkway, Mountain View, CA\") to geographic coordinates\n(37.423021, -122.083739), which you can use to place\nmarkers or position the map. The Google Maps Platform APIs provide two\napproaches to geocoding:\n\n- **Client-side geocoding** , which is executed in the browser, generally in response to user action. The Maps JavaScript API provides classes that make the requests for you. This approach is described in the [Maps JavaScript API\n documentation](/maps/documentation/javascript/geocoding).\n- **HTTP server-side geocoding** , which allows your server to directly query Google's servers for geocodes. The Geocoding API is the web service that provides this functionality. Typically, you integrate this service with other code that is running server-side. Server-side geocoding is described in the [Geocoding API\n documentation](/maps/documentation/geocoding).\n\nExamples of client-side and server-side geocoding\n\nHere is a sample of **client-side geocoding** which takes an\naddress, geocodes it, moves the center of the map to that location, and adds a\nmap marker there: \n\n```javascript\ngeocoder = new google.maps.Geocoder();\ngeocoder.geocode({ 'address': address }, function(results, status) {\n if (status == google.maps.GeocoderStatus.OK) {\n map.setCenter(results[0].geometry.location);\n var marker = new google.maps.Marker({\n map: map,\n position: results[0].geometry.location\n });\n }\n});\n```\n\nFor more examples, see the\n[Maps JavaScript API\ndocumentation](/maps/documentation/javascript/geocoding).\n\nHere is an example using Python to do a **server-side\ngeocoding** request: \n\n```python\nimport urllib2\n\naddress=\"1600+Amphitheatre+Parkway,+Mountain+View,+CA\"\nkey=\"my-key-here\"\nurl=\"https://maps.googleapis.com/maps/api/geocode/json?address=%s&key=%s\" % (address, key)\n\nresponse = urllib2.urlopen(url)\n\njsongeocode = response.read()\n```\n\nThis produces a JSON object with the following content: \n\n```javascript\n{\n \"status\": \"OK\",\n \"results\": [ {\n \"types\": street_address,\n \"formatted_address\": \"1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA\",\n \"address_components\": [ {\n \"long_name\": \"1600\",\n \"short_name\": \"1600\",\n \"types\": street_number\n }, {\n \"long_name\": \"Amphitheatre Pkwy\",\n \"short_name\": \"Amphitheatre Pkwy\",\n \"types\": route\n }, {\n \"long_name\": \"Mountain View\",\n \"short_name\": \"Mountain View\",\n \"types\": [ \"locality\", \"political\" ]\n }, {\n \"long_name\": \"San Jose\",\n \"short_name\": \"San Jose\",\n \"types\": [ \"administrative_area_level_3\", \"political\" ]\n }, {\n \"long_name\": \"Santa Clara\",\n \"short_name\": \"Santa Clara\",\n \"types\": [ \"administrative_area_level_2\", \"political\" ]\n }, {\n \"long_name\": \"California\",\n \"short_name\": \"CA\",\n \"types\": [ \"administrative_area_level_1\", \"political\" ]\n }, {\n \"long_name\": \"United States\",\n \"short_name\": \"US\",\n \"types\": [ \"country\", \"political\" ]\n }, {\n \"long_name\": \"94043\",\n \"short_name\": \"94043\",\n \"types\": postal_code\n } ],\n \"geometry\": {\n \"location\": {\n \"lat\": 37.4220323,\n \"lng\": -122.0845109\n },\n \"location_type\": \"ROOFTOP\",\n \"viewport\": {\n \"southwest\": {\n \"lat\": 37.4188847,\n \"lng\": -122.0876585\n },\n \"northeast\": {\n \"lat\": 37.4251799,\n \"lng\": -122.0813633\n }\n }\n }\n } ]\n}\n```\n\nThe server-side geocoder also provides an XML format as an alternative to\nJSON. For more examples, see the\n[Geocoding API\ndocumentation](/maps/documentation/geocoding) and the\n[client libraries](/maps/documentation/geocoding/client-library) for Python\nand other languages.\n\nQuota and cost considerations\n\nGeocoding costs, quotas, and rate limits drive the strategies outlined in this\ndocument.\n\nCost\n\n\n[Quota-per-day (QPD) limits are no longer in use](/maps/documentation/geocoding/usage-and-billing#requests-per-day-qpd-limits-have-ended-effective-june-11-2018) for geocoding requests.\nInstead, each geocoding request, whether client-side through the browser or server-side through the\nGeocoding API web service, is\n[billed at a per-each price](/maps/documentation/geocoding/usage-and-billing#new-payg).\nTo manage your cost of use, consider\n[capping your daily quota](/maps/documentation/geocoding/usage-and-billing#set-caps).\n| **Important:** To use the Google Maps Platform APIs, you must [enable billing](/maps/documentation/geocoding/usage-and-billing#important-enable-billing) on each of your projects. If you choose not to add a billing account, your maps will be degraded, or other Maps API requests will return an error.\n\nRate limits\n\nThe geocoding service is rate limited to 3,000 QPM (queries per minute),\ncalculated as the sum of client-side and server-side queries.\n\nWhen running client-side geocoding requests at periodic intervals, such as\nin a mobile app, your requests may return errors if all of your users are\nmaking requests at the same time (for example, all at the same second of every\nminute). To avoid this, consider one of the following:\n\n- Introduce random intervals to your requests (jitter). Ensure requests are random across your entire userbase.\n- If developing for Android, use an [inexact\n repeating alarm](https://developer.android.com/develop/background-work/services/alarms/schedule#repeating).\n- If developing for Android, select an appropriate [location\n strategy](https://developer.android.com/training/location/retrieve-current).\n\nCaching\n\nSee\n[Geocoding API Policies](/maps/documentation/geocoding/policies#pre-fetching-caching-or-storage-of-content) about caching.\n\nWhen to use client-side geocoding\n\nThe short answer is \"almost always.\" The reasons are:\n\n- Client-side request and response provide a faster, more interactive experience for users.\n- A client-side request can include information that improves geocoding quality: user language, region, and viewport.\n\nIn particular, client-side geocoding is best when geocoding addresses\nbased on input from the user.\n\nThere are two basic architectures for client-side geocoding:\n\n- Do the geocoding and the display entirely in the browser. For instance, the user enters an address on your page. Your application geocodes it. Then your page uses the geocode to create a marker on the map. Or your app does some simple analysis using the geocode. No data is sent to your server. This reduces load on your server.\n- Do the geocoding in the browser and then send it to the server. For instance, the user enters an address on your page. Your application geocodes it in the browser. The app then sends the data to your server. The server responds with some data, such as nearby points of interest. This allows you to customize a response based on your own data.\n\nWhen to use server-side geocoding\n\nServer-side geocoding is best used for applications that\nrequire you to geocode addresses without input from a client. A common example\nis when you get a dataset that comes independently of user input,\nfor instance if you have a fixed, finite, and known set of\naddresses that need geocoding. Server-side geocoding can\nalso be useful as a backup for when client-side geocoding fails.\n\nSome possible concerns are an unnecessary increase in latency for the user,\nand geocoding results of a lesser quality than client-side because less\ninformation is available in the request."]]