亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在沒有 Google API 的情況下使用瀏覽器 GeoLocation?

在沒有 Google API 的情況下使用瀏覽器 GeoLocation?

哈士奇WWW 2022-10-27 14:18:01
我需要從 Web 客戶端獲取用戶的位置。由于某些國家/地區的 Google 限制(有關更多信息,請參閱Stackoverflow 上的此問題),以下代碼將返回一個空對象(在瀏覽器控制臺、chrome 、safari等中):navigator.geolocation所以,我不能在地理定位 APIgetCurrentLocation中使用其他方法, 我正在使用不同的方法來查找用戶位置(IP 庫),但它不能正常工作。還有其他方法可以找到用戶位置坐標嗎?更新(2020 年 7 月 12 日):由于誤解,我已經更新了我的帖子。 有些人說它適用于HTTPS。于是我打開Chrome瀏覽器,搜索StackOverflow(這個網站是眾所周知的HTTPS)現在在控制臺上,沒有任何 navigator.geolocation 的數據:
查看完整描述

4 回答

?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

API 的另一種選擇可能是GeoJS API。它基于Maxmind 的 GeoLite 數據庫。

注意:在上述API中,所有HTTP請求都會重定向到HTTPS.


查看完整回答
反對 回復 2022-10-27
?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

您可以嘗試使用地理定位 API 獲取用戶位置,并使用用戶的 IP 地址進行回退,以防 API 在用戶的環境中不起作用。


const success = (position) => {

  // use position

};


const fallback = () => {

  // try getting it via the user's IP

}


navigator.geolocation.getCurrentPosition(success, fallback);

當然,這完全取決于您需要多少精度。IP 地址本地化精度不高。


查看完整回答
反對 回復 2022-10-27
?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

MDN 參考

此功能僅在安全上下文 ( HTTPS )、部分或所有支持的瀏覽器中可用。

我認為您正在嘗試在不起作用的開發模式下使用此功能。但是有一種方法可以在開發模式下解決這個問題,那就是在你的開發模式下使用假 https。

更新(2020 年 7 月 12 日):

我在 Stackoverflow 控制臺中的地理位置對象(檢查元素)。

http://img1.sycdn.imooc.com//635a22ce00014f2319170562.jpg

Geolocation 對象實際上是空的,您應該看到它的原型用戶__proto__.

如果您在項目中使用 create-react-app,則應在.env文件中添加HTTPS=true 。它對我有用。


查看完整回答
反對 回復 2022-10-27
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

要在 Web 客戶端上查找用戶的地理位置,您可以使用HTML Geolocation APIGoogle Geolocation請參閱 stackoverflow 上的這個問題)。但是總是需要獲得用戶的許可才能在瀏覽器上知道他們的位置(瀏覽器位置權限)。如果用戶不允許,Geolocation api 將不會提供任何結果。

盡管允許用戶使用,但與移動設備(使用內置 GPS)不同,計算機上運行的 Web 瀏覽器所產生的某些地理位置不會精確或什至不接近(沒有內置 GPS)。如果用戶使用 VPN 或代理,找到精確的地理位置也將是麻煩的。

所以總結一下,我們無法得到;

  1. 每個用戶的地理位置未經他們的許可

  2. 100% 準確度,無需在其 Web 訪問設備上使用本機 GPS,并且在使用 vpn 時,代理正在使用中。


查看完整回答
反對 回復 2022-10-27
  • 4 回答
  • 0 關注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號