簡體   English   中英

如何使用經緯度獲取用戶當前位置

[英]How to get user current location with lat and long

我關注了一段時間的地理編碼器以獲取用戶的當前位置和信息,並且單獨使用 lat long 值。

我試過的代碼。

import geocoder
myloc = geocoder.ip('me')
print(myloc.latlng)
print(geocoder.ipinfo())

獲取info值是可以的。 但經緯度值似乎不同。 它顯示了近8~9km的距離位置。 似乎運行時間也有點長。 有沒有其他方法可以更快地獲得足夠接近的經緯度值和運行時間?

您需要了解 IP 地理定位的工作原理,才能知道為什么您沒有得到精確的結果。

1- IP 地理位置使用您的公共IP 地址來定位您。 大多數情況下,此地址是由您的互聯網提供商分配給您的。

這不是您的計算機或您家的 IP,而是您的 Internet 提供商設備之一的 IP(它們到 Internet 的出口點,ZA12A3079E14CED46E69BA52B8A90B2 的路由器內部的某處)

2- IP 地址沒有附加位置信息,根據您使用的地理位置 API,結果可能或多或少精確。 我使用 Abstract Geolocation 因為它是免費的、准確的並且可以實時運行: https://www.abstractapi.com/ip-geolocation-api您需要創建一個帳戶來獲取您的 API 密鑰,這只需幾秒鍾。

3-地理編碼器有時可能很慢。 調用 API 就像通過地理編碼器一樣簡單,因此您可以不用它並獲得更快的響應:

import requests
import json

response = requests.get("https://ipgeolocation.abstractapi.com/v1/?api_key=YOUR_API_KEY")
data = json.loads(response.content)
print(data)

這將顯示有關您的 IP 地址的大量信息,您可以選擇添加ip_address參數以獲取有關另一個 IP 的信息。

geocoder器使用您的 ip 來獲取位置(而不是使用更先進的技術,如 WIFI SSID 映射和 GPS),這並不准確。

來自iplocation.net

  1. 基於 IP 的地理定位有多准確?

地理位置數據庫的准確性取決於您使用的數據庫。 對於 IP 到國家/地區的數據庫,一些供應商聲稱可以提供 98% 到 99% 的准確度,盡管典型的 Ip2Country 數據庫准確度更像是 95%。 對於 IP 到區域(或城市),如果相鄰城市被視為正確,則准確度范圍為 50% 到 75%。 考慮到沒有 IP-to-Region 信息的官方來源,50+% 的准確率是相當不錯的。

您可以嘗試此處提到的內容: https://github.com/joeljogy/Getting-GeoLocation以獲得更准確的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM