Geolocation API 總覽
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
Geolocation API 是一項服務,可接受含有行動用戶端可偵測到的行動通信基地台和 Wi-Fi 存取點的 HTTPS 要求。並傳回經緯度座標和半徑,指出每個有效輸入結果的準確度。
使用 Geolocation API 的理由
使用 Geolocation API 找出未提供原生地理位置功能的行動裝置。
Geolocation API 的用途
Geolocation API 可根據行動通信基地台和 Wi-Fi 節點的地理空間資料,取得沒有原生地理位置或 GPS 的裝置位置。
Geolocation API 的運作方式
Geolocation API 會使用行動裝置資料欄位、行動通信基地台資料和 Wi-Fi 存取點陣列資料,傳回緯度/經度座標和精確度半徑。它會接受傳送至端點的 HTTPS POST 要求,以及 JSON 結構化要求主體。以下範例顯示要求網址和要求主體:
curl -X POST "https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d \
'{ "homeMobileCountryCode":310,
"homeMobileNetworkCode":410,
"radioType":"gsm",
"carrier":"Vodafone",
"considerIp":true
}'
API 可以傳回多個常見的行動網路資料欄位資料,如下所示。
資源
下表列出地理位置端點呼叫要求主體中的欄位,以及這類查詢提供的資料類型。
如何使用 Geolocation API
可用的用戶端程式庫
透過下列任一用戶端程式庫,以您選擇的語言呼叫這項 API:
Google 地圖服務適用的 Java、Python、Go 和 Node.js 用戶端都是社群支援的用戶端程式庫,並依據阿帕契 2.0 授權的條款提供開放原始碼。您可以從 GitHub 下載這些用戶端,並查看安裝操作說明和程式碼範例。
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-08-31 (世界標準時間)。
[null,null,["上次更新時間:2025-08-31 (世界標準時間)。"],[[["\u003cp\u003eThe Geolocation API determines the latitude and longitude of a device using cell tower and WiFi access point data, returning results with an accuracy radius.\u003c/p\u003e\n"],["\u003cp\u003eThis API is primarily for devices lacking native geolocation features; devices with such features should leverage HTML5 geolocation or the Geocoding API.\u003c/p\u003e\n"],["\u003cp\u003eBy sending an HTTPS POST request with device data to the API endpoint, developers can retrieve location information for mobile devices.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can utilize various data resources like cell device fields, cell tower data, and WiFi access point data to pinpoint device locations.\u003c/p\u003e\n"],["\u003cp\u003eClient libraries are available in Java, Python, Go, and Node.js for seamless integration with the Geolocation API.\u003c/p\u003e\n"]]],[],null,["The Geolocation API is a service that accepts an HTTPS request with the\ncell tower and Wi-Fi access points that a mobile client can detect. It returns\nlatitude/longitude coordinates and a radius indicating the accuracy of the\nresult for each valid input.\n| **Note** : To get device location information using latitude and longitude coordinates, addresses, or Place IDs, go to the [Geocoding API](/maps/documentation/geocoding/overview).\n\nWhy use the Geolocation API\n\nUse the Geolocation API to locate mobile devices that do not provide native geolocation\nfeatures.\n| For web browsers and mobile devices that ***already provide geolocation capabilities*** , use the following instead:\n|\n| - **Browsers with HTML5 geolocation** : Use the Maps Javascript API. For more information, go to [Geolocation:\n| Displaying User or Device Position on Maps](/maps/documentation/javascript/geolocation).\n| - **Mobile devices geolocation** : Go to [Geocoding API](/maps/documentation/geocoding/overview).\n|\n| For more information on the W3C Geolocation standard, see\n| [W3C Geolocation standard](https://w3c.github.io/geolocation-api/).\n\nWhat you can do with the Geolocation API\n\nWith the Geolocation API, you can use geospatial data from cell towers\nand WiFi nodes to get the location of a device that does not have native geolocation or GPS.\n\nHow the Geolocation API works\n\nThe Geolocation API uses cellular device data fields, cell tower\ndata, and WiFi access point array data to return latitude/longitude coordinates and an accuracy\nradius. It accepts an HTTPS POST request to its endpoint along with a JSON structured request\nbody. The following example shows the request URL and an example request body:\n\n```json\ncurl -X POST \"https://www.googleapis.com/geolocation/v1/geolocate?key=\u003cvar translate=\"no\"\u003eYOUR_API_KEY\u003c/var\u003e\" \\\n-H \"Content-Type: application/json\" \\\n-d \\\n'{ \"homeMobileCountryCode\":310,\n \"homeMobileNetworkCode\":410,\n \"radioType\":\"gsm\",\n \"carrier\":\"Vodafone\",\n \"considerIp\":true\n}'\n```\nThe API can return data for a number of common cellular data fields as indicated below.\n\nResources\n\nThe following table summarizes the fields in the request body of the geolocation endpoint\ncall, along with the type of data provided from such queries.\n\n| Data resources | Data returned | Return format |\n|----------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|---------------|\n| [Cell device data fields](/maps/documentation/geolocation/requests-geolocation#body) such as carrier, device, and network information. | Latitude/longitude coordinates and an accuracy radius | JSON |\n| [Cell tower data](/maps/documentation/geolocation/requests-geolocation#cell_tower_object), such as location area code and mobile country codes. | Latitude/longitude coordinates and an accuracy radius | JSON |\n| [WiFi access points data](/maps/documentation/geolocation/requests-geolocation#wifi_access_point_object), such as MAC address and signal strength. | Latitude/longitude coordinates and an accuracy radius | JSON |\n\nHow to use the Geolocation API\n\n|---|------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| 1 | **Get set up** | Start with [Set up your Google Cloud project](/maps/documentation/elevation/cloud-setup) and complete the setup instructions that follow. |\n| 2 | **Try a geolocation request** | Once you have an API key, you can start testing out the Geolocation API using cURL or Postman. See [Sample requests](/maps/documentation/geolocation/requests-geolocation#sample-requests) in the Geolocation requests and response guide for details. |\n| 3 | **Get the cellID from different radio towers** | See [Calculating cellID](/maps/documentation/geolocation/requests-geolocation#calculating_cell_id) and [Calculating newRadioCellID](/maps/documentation/geolocation/requests-geolocation#sample-requests) to get access to older and newer towers, respectively. |\n| 4 | **Understand response basics** | Explore the geolocation data responses to prepare to use elevation data for your app. See [Geolocation responses](/maps/documentation/geolocation/requests-geolocation#responses) for details. |\n\nAvailable client libraries\n\nCall this API in the language of\nyour choice through one of the following client libraries:\n\n- [Java\n Client for Google Maps Services](https://github.com/googlemaps/google-maps-services-java)\n- [Python\n Client for Google Maps Services](https://github.com/googlemaps/google-maps-services-python)\n- [Go Client\n for Google Maps Services](https://github.com/googlemaps/google-maps-services-go)\n- [Node.js\n Client for Google Maps Services](https://github.com/googlemaps/google-maps-services-js)\n\nThe Java Client, Python Client, Go Client and Node.js Client for Google Maps\nServices are community-supported client libraries, open sourced under the\n[Apache 2.0 License](http://www.apache.org/licenses/LICENSE-2.0).\nDownload them from GitHub, where you can also find installation instructions and sample code.\n\nWhat's next\n\n- **Get started with sample requests and responses** : Go to [Geolocation request and response](/maps/documentation/geolocation/requests-geolocation)\n- **Follow best practices** : Go to [Web Service Best Practices](/maps/documentation/geolocation/web-service-best-practices).\n- **Understand billing** : Go to [Usage and Billing](/maps/documentation/geolocation/usage-and-billing)."]]