App 需定位功能,有的只需經緯度/地址信息,不需地圖展示,詢問是否必須集成第三方地圖 SDK。
定位 ≠ 地圖展示。**定位只獲取經緯度/地址**,地圖 SDK(高德/百度/騰訊/Google Maps)主要提供**地圖渲染、導航、POI 搜索、地理編碼**等能力。若無地圖展示需求,**僅集成定位 SDK 或直接用系統 API 即可**,體積更小、依賴更少。
| 技術 | 原理 | 精度 | 優點 | 缺點 | 典型 SDK/API |
|---|---|---|---|---|---|
| GPS/GNSS | 衛星信號三角定位 | 5-10m (露天) | 全球通用、無需網絡、精度高 | 室內/密集樓宇弱、冷啟動慢、耗電 | Android LocationManager, FusedLocationProvider |
| Wi-Fi 定位 | 掃描周邊 AP 的 MAC+BSSID,查詢位置數據庫 | 20-50m | 室內效果好、啟動快、省電 | 需網絡查詢數據庫、隱私敏感 | Google Play Services, 高德/百度定位 SDK |
| 基站定位 (LBS) | 服務小區 CID/LAC/MNC,查詢基站坐標數據庫 | 100-1000m | 無 GPS/Wi-Fi 也能定位、覆蓋廣 | 精度低、需網絡、數據庫更新滯後 | 運營商接口、第三方定位 SDK |
| IP 地址定位 | 公網 IP 歸屬地數據庫 | 城市級 | 無需權限、全平台通用 | 精度極低、代理/VPN 失效 | 免費 IP 庫、第三方 API |
FusedLocationProviderClient (Google Play Services) 內部融合 GPS/Wi-Fi/基站/傳感器,**自動選最優**、API 簡單、無需額外 SDK。com.amap.api:location 等)。LocationManager.requestLocationUpdates(GPS_PROVIDER/NETWORK_PROVIDER),需自行融合、處理權限、電量優化。Geocoder.getFromLocation(lat, lng, 1)(需網絡、海外較準、國內受限)。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
總結:**定位需求 ≠ 地圖 SDK**。按「精度要求、室內/室外、海內外、依賴體積」選擇:系統融合定位 / 廠商純定位 SDK / HTTP 逆地理編碼 API,輕量高效滿足業務。