首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JavaScript 獲取用戶地理位置:Geolocation API 完整指南

     編輯:程式設計綜合問答

標準 API

if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(
        pos => {
            const {latitude, longitude, accuracy} = pos.coords;
            console.log(`緯度: ${latitude}, 經度: ${longitude}, 精度: ${accuracy}m`);
            // 發送給後端
            fetch('/api/location', {
                method: 'POST',
                headers: {'Content-Type': 'application/json'},
                body: JSON.stringify({lat: latitude, lng: longitude})
            });
        },
        err => console.error('定位失敗:', err.message),
        {enableHighAccuracy: true, timeout: 10000, maximumAge: 0}
    );
} else {
    alert('瀏覽器不支援地理定位');
}

關鍵選項

選項說明
enableHighAccuracytrue 使用 GPS,false 用 WiFi/基站 (較快、較省電)
timeout超時毫秒數,超過觸發 error 回調
maximumAge接受快取位置最大壽命 (ms),0 即時定位

HTTPS 強制要求

Chrome 50+ / Firefox 55+ **僅在 HTTPS (或 localhost) 允許調用**,HTTP 會直接拒絕並觸發 `PERMISSION_DENIED`。

備選:IP 定位 (無需用戶授權)

fetch('https://ipapi.co/json/')
    .then(r => r.json())
    .then(d => console.log(`城市: ${d.city}, 經緯度: ${d.latitude}, ${d.longitude}`));

精度較低 (城市級),適合無授權場景。

隱私合規

  • 明確告知用途、獲取同意 (GDPR/個資法)。
  • 最小化收集,傳輸加密,存儲加密,定期刪除。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved