前提,设备本身肯定是知道确切定位的,只是由用户决定是否提供给指定 app 。
首先,我搜索了定位原理 和 iOS app 如何获取位置
通用方案有三个:
iOS 上实现一般是使用 Core Location Framework。其中 desiredAccuracy 可以设置精度,之前最差精度是 3 千米。页面中新添加了 kCLLocationAccuracyReduced: CLLocationAccuracy 。 The level of accuracy used when an app isn’t authorized for full accuracy location data. 精度是 1 - 20 千米。
下一个工作就是弄明白,提供给 app 的到底是 GPS 坐标,还是有人口中的位置标识符,或者其它值。
根据上面的开发文档,提供的是 GPS 坐标和精度等信息。当然,我也没弄明白所谓的标识符是什么。
问题来了:
[1] 大致位置如何工作?
GPS 坐标分为经纬度两个基本值 0.12345,6.78901 。
所以大致位置就是减少小数点后的位数么?
还是说修改末尾的某几个数字造成偏移?
[2] 是否有效保护隐私?
假设最佳的情况:本机没有历史位置、不移动(真实位置不更新)、大致定位在距离 20 km 处。
我看到位置更新需要设置条件(比如移动了 5 m 后更新),如果本机真实位置不移动,kCLLocationAccuracyReduced 是否会更新?(如对应需要定位 app 关闭 1 小时后重新打开)如果更新的话,按照活动规律画圆找同心圆或者圆心就不太能有效了。
这之外,正常使用的 app 都有联网权限,是否可以根据 IP 获取精确位置?
另外还有广告联盟、共享 Cookies 之外很多的第三方接入,所以好奇这个保护是否有效。
我不是 iOS 开发者,所以对于很多文档并不了解,希望有经验的大佬解答一下,感谢!
1
opengps 2020-06-26 18:48:10 +08:00 via Android
说位置,很多时候都是坐标来描述,只不过坐标本身有误差,很多非 gps 模块直接返回的误差都是不可控,甚至误差很大的
也有些时候给到的不是坐标,而是位置表述,比如 xx 国家 xx 省 xx 市 xx 区,这种如果用到位置往往用地图默认的中心坐标代替 另外,说到广告之类的,他们用的是 ip 定位,传统的都是 ip 分配区域性质,一般也就能到市级别,有些可以到区级别,能到街道级别的微乎其微 |
2
lslqtz 2020-06-27 00:23:31 +08:00
大致位置我觉得是漂移+提供给 app 的精度减低?
或者干脆用精度更低的方式去获取和提供(还兼顾省电) |
3
lslqtz 2020-06-27 00:28:16 +08:00
咱实测了一下,在地图 app 中大致位置相对于精确位置有差不多 1km 的偏移,同时即使开启精确位置再关闭后会定位到一样的位置,不清楚是不是依靠算法固定计算的。
而向 app 提供的精度则从原先的米级到了 10km 级差不多?反正差距特别大 |
4
astkaasa 2020-06-27 06:03:37 +08:00
geohash 5 或者 6 吧
|