为什么智能手机能通过网络定位而电脑却不行?

2017-05-16 12:53:57 +08:00
 how2ex

同样的 wifi,用智能手机连接后能大致定位。用电脑浏览器打开网页版地图就无法定位。什么原理?

6985 次点击
所在节点    程序员
47 条回复
skylancer
2017-05-18 14:17:41 +08:00
@how2ex mac 不会变啊...
honeycomb
2017-05-18 14:53:38 +08:00
@how2ex

bssid 不能随意修改,bssid 就是 AP 的 mac。所以改 SSID 可以认为无意义。bssid 的参考作用比 ssid 更强。

其实很多情况下,即便不在无线网络下,只要有公网 IP 地址也能获得非常好的定位精度。前段时间百度提供的高精度 IP 定位就是一个例子。


@xyfan
问题在于,你认为你手机里没有百度系应用,不等于你手机里确实没有百度系的应用(或者其它执行定位功能的代码):
1,定位 sdk
2,只需要公网 IP 地址的高精度 IP 定位 API,当然这个对于手机效用会低一些,因为仅使用蜂窝网络时,手机的公网地址一般是运营商的内网地址,随时会变。
3,手机 framework 层的的辅助定位系统( agps 等)用的就是百度提供的接口
xyfan
2017-05-18 19:40:56 +08:00
@honeycomb 我只是在反驳 kingmo888 而已,至于我的手机在绿守+冰箱+xprivacy 的联合管理下,我自认为没有百度定位 SDK 能在我不知道的情况下运行。其次我手机里的辅助定位用的谷歌家的框架。我知道国内厂商的手机大多使用百度或高德的框架,但我的手机不是。
honeycomb
2017-05-18 23:40:11 +08:00
@xyfan 抱歉我好像是回复错人了!
how2ex
2017-05-19 12:44:32 +08:00
@honeycomb “ bssid 不能随意修改,bssid 就是 AP 的 mac。”按照你的说法,我换个路由器或者修改路由器的 mac 就会对定位有影响?但我用手机纯网络定位,感觉跟 mac 没啥关系噢,不管连接到什么设备,网络定位都是比较准的。精度几百米到 2km 不等。
honeycomb
2017-05-19 20:00:55 +08:00
@how2ex

你换一个路由器的结果:

1,bssid 变更,ssid 说不定也被你换了。
2,IP 地址可能因为重新拨号也换了。

这个时候你用手机”纯网络定位“,看样子是给了 coarse_location 权限,但没有给 precise_location 权限,如此:

定位逻辑代码用 getScanResult()获得的结果(返回扫描附近的 AP 列表)没有什么变化,除了信号最强的那个 AP (你家的路由器)不一样了。
后台由此判定出的位置和之前没有什么区别。

这里还没考虑其实你还开着蜂窝网络,基站的标识符也可以提供类似 BSSID 的定位作用,如果是 LTE,还可能提供专用于定位功能的报文来获得更好的定位结果。

除此以外还有蓝牙 beacon,地磁信息等内容提供室内的高精度辅助定位等。
bolice
2017-05-23 11:31:19 +08:00
@buildops #21 不能令我信服,AirPods 丢了,不在手机身边,无法连接到手机时改怎么定位?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/361657

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX