• 请不要在回答技术问题时复制粘贴 AI 生成的内容
how2ex
V2EX  ›  程序员

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

  •  
  •   how2ex · May 16, 2017 · 8029 views
    This topic created in 3466 days ago, the information mentioned may be changed or developed.

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

    47 replies  •  2017-05-23 11:31:19 +08:00
    cnta
    cnta
    May 16, 2017
    1
    智能手机 WiFi 定位原理,不管 GPS 和基站定位的话,需要有服务器的存在,收集用户的地理位置信息与 WiFi 热点的 MAC,系统提供 API。windows 应该没有对应的服务,不保证完全对,但是大概是这么回事。
    LokiSharp
    LokiSharp
    May 16, 2017❤️3
    2
    先问是不是,再问能不能。
    how2ex
    how2ex
    OP
    May 16, 2017
    3
    @cnta 肯定是有一个基站跟位置的对应关系,难道这个对应关系是手机提供的?还有就是网络运营商如果不提供基站位置信息,其他平台如何获得这个对应关系?
    2266
    2266
    May 16, 2017
    4
    电脑也可以定位啊
    bukip
    bukip
    May 16, 2017
    5
    电脑也可以
    wc951
    wc951
    May 16, 2017 via Android
    6
    win10 有位置服务啊
    cnta
    cnta
    May 16, 2017
    7
    @how2ex 你可以看看苹果手机 /android 手机的 WiFi 定位原理,有很多定位方式的。电脑上网页一般根据你的 IP 地址定个大概的位置,不过由于有无线网卡,利用智能手机的 WIFi 定位原理笔记本理论上也能一样的弄。(假设你问的就是 WiFi 定位啊)
    Shura
    Shura
    May 16, 2017 via Android
    8
    电脑也有,比如 html5 就有专门用于获取地理位置的 API,不区分终端设备的。
    xyfan
    xyfan
    May 16, 2017
    9
    每次电脑打开百度地图都能精确定位。电脑与手机相比少了基站信息,但其他信息大部分都有。
    panda1001
    panda1001
    May 16, 2017❤️1
    10
    @cnta
    手机高精度定位基本上就是 基站 热点 MAC 地址 GPS 低精度的 IP 地址 重要的是 app 拿到信息后及时上传
    电脑能拿到上面某一种一样可以高精度定位

    前些日子的百度高精度 IP 数据库 不知多少人的国外 VPS 中招 某墙要是维护这个数据库后果可想而知

    基站 MAC 地理位置 API http://www.cellocation.com/interfac/

    树莓派插上 3g 网卡一样可以基站定位
    https://ooo.0o0.ooo/2017/05/16/591ac3571f69d.png
    mmnsghgn
    mmnsghgn
    May 16, 2017
    11


    macOS 的地图,宿舍位置都不差。
    rssf
    rssf
    May 16, 2017 via iPhone
    12
    @zhengjian 这种定位需要有 wifi。如果是个台式机只插网线,就没这么准了
    cnta
    cnta
    May 16, 2017 via Android
    13
    @panda1001 嗯,是有多种定位方式,当时看到楼主的关键字是连上 WiFi 手机能精确定位电脑不行,着重点就在 WiFi 定位了。应该还是 GPS+热点 MAC 定位效果最好,基站都感觉不太精确了。
    Devmingwang
    Devmingwang
    May 16, 2017
    15
    网页定位当然是不行的,windows 系统下面浏览器是没法直接访问硬件层面的(就是当前搜到多少 wifi 等等)。
    手机的话,除非是这个 wifi 热点存在了很多年(谷歌没有被封之前就有),不然也是还需要依靠基站和当前能搜到的其他 wifi 进行定位的,最差劲的时候是需要依赖 ip 地址的。
    qiukong
    qiukong
    May 16, 2017 via iPhone
    16
    @zhengjian 我要没记错,macbook 应该有内置 GPS
    lightening
    lightening
    May 16, 2017
    17
    @rssf 手机也是啊,要是没 wifi 也不行啊。
    lightening
    lightening
    May 16, 2017
    18
    @qiukong 你记错了
    qiukong
    qiukong
    May 16, 2017 via iPhone
    19
    @lightening 确实记错,献丑了……
    bolice
    bolice
    May 17, 2017
    20
    弱弱的问一句,苹果的耳机是怎么定位的?
    buildops
    buildops
    May 17, 2017
    21
    @bolice AirPods 是通过蓝牙和手机定位。
    how2ex
    how2ex
    OP
    May 17, 2017
    22
    @linhua www.opengps.cn 这个网址我曾经在不同 IP 地址测试过,基本上只能定位你所在城市,用手机地图打开能定位到精度几百米。当然手机没有打开 GPS。
    how2ex
    how2ex
    OP
    May 17, 2017
    23
    @Shura 有 html5 的测试网址吗?
    how2ex
    how2ex
    OP
    May 17, 2017
    24
    @xyfan 我在 Win7 上分别使用 chrome 和 IE 打开 map.baidu.com,点击右下角定位按钮,提示失败。打开 amap.com,能定位到城市。
    how2ex
    how2ex
    OP
    May 17, 2017
    25
    @zhengjian 题外话,你上传的图片是会员功能吗?
    how2ex
    how2ex
    OP
    May 17, 2017
    26
    @panda1001 http://www.cellocation.com/interfac/ 这个网感觉有点实质性的关于定位的内容,但是没搞懂。
    how2ex
    how2ex
    OP
    May 17, 2017
    27
    @panda1001 顺带发现了一个贴图网站,很快! SM.SM
    kingmo888
    kingmo888
    May 17, 2017
    28
    @xyfan 我敢说,你的百度地图 web 是登录状态的。哈哈。而且你手机在你身边。它还是用了你的手机数据
    how2ex
    how2ex
    OP
    May 17, 2017
    29
    @kingmo888 没有登录噢,要不你截图给大家欣赏一下。可以将图片上传至 https://sm.ms/再分享链接
    keinx
    keinx
    May 17, 2017
    30
    @kingmo888
    我没有登录百度,手机上也就只有一个百度输入法(登录的),mac 电脑上没有百度的产品而且也没有登录百度地图
    ![]( https://ooo.0o0.ooo/2017/05/17/591c143b2e068.png)
    dven
    dven
    May 17, 2017
    31
    很难获得宽带的安装位置,不像手机基站,除非笔记本中有 GPS 模块
    honeycomb
    honeycomb
    May 17, 2017
    32
    电脑也可以啊


    “智能手机能通过网络定位”
    通常是只需要用这个手机当前连接的接入点的 BSSID,SSID 和公网 IP 就能给出足够好的定位了。
    这就是为什么有的应用不给它定位权限,依然能粗略定位的原因,因为定位权限一般不限制访问当前已连接的接入点的 BSSID/SSID,公网 IP 更是不可能限制。

    如果需要更准确的,那么加上周围其它接入点的信息可以计算出更好的定位。

    这些信息在电脑上也能获得
    mmnsghgn
    mmnsghgn
    May 17, 2017
    33
    @how2ex 你是指什么会员功能?
    how2ex
    how2ex
    OP
    May 18, 2017
    34
    @zhengjian 充值后,图片可以上传到 V2EX Image Hosting。
    how2ex
    how2ex
    OP
    May 18, 2017
    35
    @keinx 你的截图上的定位准确吗?精度大概多少米?
    how2ex
    how2ex
    OP
    May 18, 2017
    36
    @honeycomb 你说的 SSID 就是我家 wifi 的名称吧?如果是的话,我随便改个名称岂不是定位信息会发生变化?
    你电脑可以定位吗?可以的话截个图给大家学习学习呀。[笑脸]
    截图可以上传到 sm.ms
    zengfxios
    zengfxios
    May 18, 2017
    37


    没毛病
    mmnsghgn
    mmnsghgn
    May 18, 2017
    38
    @how2ex 哦哦哦!我是传到微博图床的,哈哈哈
    mmnsghgn
    mmnsghgn
    May 18, 2017
    39
    @zengfxios 哈哈哈,巧了,咱就 6.5 公里的距离
    xyfan
    xyfan
    May 18, 2017 via Android
    40
    @kingmo888 网页的确是登录状态,但我手机里没有任何百度系应用,百度还能凭空获取我手机信息不成?
    skylancer
    skylancer
    May 18, 2017
    41
    @how2ex mac 不会变啊...
    honeycomb
    honeycomb
    May 18, 2017 via Android
    42
    @how2ex

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

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


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

    你换一个路由器的结果:

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

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

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

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

    除此以外还有蓝牙 beacon,地磁信息等内容提供室内的高精度辅助定位等。
    bolice
    bolice
    May 23, 2017
    47
    @buildops #21 不能令我信服,AirPods 丢了,不在手机身边,无法连接到手机时改怎么定位?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4121 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 89ms · UTC 09:16 · PVG 17:16 · LAX 01:16 · JFK 04:16
    ♥ Do have faith in what you're doing.