Chrome A获得没有GPS单元的设备的确切位置的方法(即膝上型计算机)并且基于WiFi连接

scyqe7ek  于 2023-06-19  发布在  Go
关注(0)|答案(1)|浏览(143)

我目前正在使用:

navigator.geolocation.getCurrentPosition((position) => console.log({position});

这给了你一个非常广泛的猜测你的当前位置,不足以满足我正在构建的应用程序,将需要一个最大半径为50米的精确位置。导航器有一半是弃用的,只是坐在那里非常基本的用法,我尝试传递某些变量,我找到了更高的精度,但要么是一些被弃用,要么是没有产生任何位置精度的变化。
我们都知道一个事实,(在大多数情况下)你的www.example.com将有你在Map上的位置(蓝点)与超精度,不仅谷歌应用程序,但其他应用程序,有你的位置深度使用(例如说优步),但由于某种原因,我不能通过window.navigator。maps.google.com will have your pinpointed location on the map (blue dot) with ultra precision, and not only google applications, but other applications that have deep usage of your location (say uber for example) yet for some reason, I can't get that through window.navigator .
这是事实,一些大型科技公司,如Google and Apple例如有我们的确切位置,在定期的 chrome 网站(提醒;而不是在带有GPS的设备上),例如-maps.google.com,您将在Map上以超精度(作为蓝点)显示您的位置。
所以这个:

if ('connection' in navigator) {
  const networkInfo = navigator.connection;
  if (networkInfo.type === 'wifi') {
    const ssid = networkInfo.ssid;
    console.log('SSID:', ssid);
  }else{console.log('no');
}

不会在我试过的任何WiFi上工作(大约8)

    • 我的问题是:如何像所有大型科技公司一样获得用户BSSID连接?**
vyu0f0g1

vyu0f0g11#

信不信由你,谷歌Map使用的navigator.geolocation和你完全一样。
查看详情:

this.geolocation.getCurrentPosition(f=>{Ntg(this,f,b,{noZoom:c,callback:d})},f=>{Otg(this,f,d,e)},{enableHighAccuracy:!0,timeout:1E4,maximumAge:3E5})

Source(它被缩小了,所以你必须搜索geolocation.getCurrentPosition)。
还有一个额外的参数enableHighAccuracy,您可以将其作为getCurrentPosition的第三个options参数的一部分打开,这可能会有所帮助,但根据文档,这听起来只对具有GPS的设备有影响。Docs。实际上,获取我的PC的位置返回了相同的结果,有或没有它,但ymmv。
我验证了谷歌Map给我的结果位置与我自己的网站给我的位置完全相同,达到了千万分之一的程度。现在公平地说,这仍然是大约500米左右,但话又说回来,你的网络位置只是一个估计。如果没有GPS,你就无法确定准确的位置。
虽然WiFi可能会给予体面的结果,尝试一个Hive网络,你的位置可以在该国的另一边
Google Maps设法确定的任何额外准确性可能是由于您自愿提供的其他信息。例如,如果你在谷歌Map中设置了你的家庭地址,谷歌检测到你正在从你的家庭IP地址访问,它可能会把两个和两个放在一起,并把你定位到你的家庭地址。我不知道它们的具体实现,但我可以告诉你一件事:它们不能仅仅从navigator.geolocation或任何其他内置库中获得精确的位置。

相关问题