我正在开发一个应用程序,它使用用户的位置与其他用户一起显示在地图上。
我想确保所有用户在向其他用户公开显示他们的位置时都有一点隐私,所以我希望只用指定的偏移量(比如说 1 英里)设置他们的位置并显示“已编辑”位置给所有其他用户,同时仍向当前用户显示“确切”位置。
示例 - 如果我正在查看地图,我希望我的“用户位置”(蓝点)稍微准确,而所有其他玩家会看到我的位置与真实位置略有偏移。
实现这一目标的最佳方法是什么?
我认为您真正想要回答的问题是:
这不是一个简单的问题:
这里有一些效果更好的东西,但仍然(最终)会泄露用户的位置:
如果用户碰巧生活在网格边界上,最终仍然会很明显。有多种方法可以尝试解决此问题(例如,偏向于报告您之前报告过的网格方块),但这些方法最终都会失败。
这似乎很像尝试通过使用有损压缩(近似过程)来删除数字水印(用户的实际位置),同时产生听起来/看起来像原始的输出图像/音频(近似位置)。(如果您将“水印”视为用户的日常习惯,则该类比会更好一些,除非您确切知道这些习惯是什么并且可以删除它们,否则它将在输出中可见。)
或者在信号处理方面:低 SNR 仅仅意味着您必须听更长时间才能提取信号。
您是否将其他所有人都显示为图钉?如果您在确切位置显示图钉但其他用户不在那里,这可能会很奇怪。例如,如果某人在北一英里处,而您将他们的 pin 显示在与当前用户相同的位置。也许你应该用 MKOVerlay 圆圈显示其他用户,然后根据用户 ID 使用一些计算将其稍微偏离中心,这样人们就不会发现它总是向东移动 500m,从而很容易看到这里有人。
无论您是否更改显示,您寻求的代码都在这里:获取当前位置、方位和距离的 GPS 坐标