【问题标题】:Specify area of operation and verify if a location falls within this region指定操作区域并验证位置是否在该区域内
【发布时间】:2016-01-11 11:38:02
【问题描述】:
我对移动开发还很陌生,所以请原谅这个看似微不足道的问题。我想指定组织的操作区域以及移动应用程序用户(android、iphone 等)输入的位置(纬度、经度)是否属于操作区域。我需要一些高水平的想法。我想到的一种方法是在数据库中收集一组区域(由纬度、经度和半径指定),可以按不同的管理级别排序,然后验证用户的位置(纬度、经度)这个数据来自服务器。这是正确的方法还是有其他方法?欢迎任何指南。提前致谢。
【问题讨论】:
标签:
c#
android
iphone
algorithm
geolocation
【解决方案1】:
我认为您的主要目标是:如何定义业务领域?
如果您使用“圆形”定义(即纬度、经度和半径),您将以一些重叠区域结束,并且可能难以确定正确的行为。
我更喜欢“平方”定义(即左上角和右下角),然后您可以检查来自移动设备的坐标与来自服务器的数据,并确定正确的区域。
如果你必须保持“圆”的定义,你必须:
- 计算来自移动设备的坐标与存储在 DB 中的操作区域中心之间的距离
- 验证距离小于半径
可以计算距离:dist(A,C)=\sqrt{(xA-xC)^2+(yA-yC)^2}
其中 xA 和 yA 是移动坐标,xC 和 yC 是您所在区域的纬度和经度