我正在开发Angular Google Maps,根据IP地址绘制地理位置,并使用ipinfo.io提供该IP地址。
我想知道为什么当我在ipinfo.io上获取IP地址并使用Angular Google Maps在谷歌地图中绘制时,lat和long似乎不准确或以某种方式接近当前位置。
您可以尝试在https://www.whatismyip.com/上获取当前的IP地址,然后尝试将其放入我的项目中,然后您将看到地理位置。
但我想要实现的是https://mycurrentlocation.net/index.php
的输出有没有办法可以根据IP获得准确的地理位置?
请在Stackblitz上查看此实时代码。 https://stackblitz.com/edit/dmgrave-ng-geolocation-by-ip-v1
答案 0 :(得分:1)
您正在使用来自IP地理定位API的坐标,与Wifi地理定位或GPS相比,其精度较低。
除非您可以访问最终用户的GPS数据,否则您必须使用第三方服务转换IP地址或WIFI MAC地址以获取经度和纬度。
以下是2个解决问题的建议。
1)请求最终用户通过HTML 5分享他们的GPS位置。在这种情况下,网络浏览器将在向您分享坐标之前请求最终用户授权(视情况而定)。您可以访问http://ipgeo5.com获取示例代码。
2)更改另一个地理位置数据库。如果您关心覆盖率和准确性,则可以评估其他数据库提供程序。您可以访问http://lite.ip2location.com并使用他们的IP2Location LITE数据库,看看它是否符合您的要求。如果您更喜欢网络API,则可以考虑使用https://www.ipinfodb.com
答案 1 :(得分:0)
基于我的研究,我认为这将解释得很好.. 基于how-can-i-detect-real-location-of-the-user-through-their-ip-address。
地理位置准确性因国家/地区而异 从提供者到提供者。一些较小的国家非常准确 IP的内部映射到邮政地址,但这种类型的数据是 一般不向公众开放。
注意:不同的地理IP地址数据库也可能有所不同 您可能也想要相同IP地址的位置数据 仔细检查源数据的质量。
我需要使用HTML5 Geolocation,特别是如果远程设备是具有GPS或GPS的移动设备(如三角测量功能),这可能会为您提供比地理IP地址更准确的信息。
然后
为了能够获得准确/准确的位置,用户需要拥有带GPS的移动设备,并且用户需要允许其share位置。
重要提示:地理位置对于使用GPS的设备最准确。
本文(Ip geolocation is almost accurate (reliable), but not 100%)显示了地理定位不准确的原因。
The main reasons for this variation in result is because:
IP is traced from Provider or organization registration
Use of proxies by the user hides the exact location
Not updated data in the registrar IP database (whois information)
如果您查找了您的IP地址,并且未显示您居住的城市, 但是你的ISP所在地10英里以外的城市,那么你的 IP地址的地理定位数据与其获得的数据一样准确。