我想定义一个地理边界,在该边界之外,该应用程序将无法正常工作。我已经知道如何用两个纬度/经度对绑定的正方形来做到这一点:
if ((dLAT.doubleValue() > 35.309171) || (dLAT.doubleValue() < 35.226442) || (dLON.doubleValue() < -92.790165) || (dLON.doubleValue() > -92.707081))
{
LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(this);
localBroadcastManager.sendBroadcast(new Intent("killapp"));
}
我也了解地理围栏...或者足够了解地理围栏,将区域定义为半径为单个点的圆。
但是就像我说的那样,我想定义一个与现实相匹配的边界:
例如,如果有一个应用程序设计为如果用户不在堪萨斯州的边界之外则无法正常工作,那么定义RADIUS将不令人满意,因为堪萨斯州的状态不是圆形的,并且其边界是摆动的。
我碰巧正在使用Android,但是我怀疑这真的很重要。
谢谢你的帮助!
这比人们想象的要容易得多:
将区域定义为多边形,在经度,纬度坐标中有N个点。
在多边形方法中使用点:
为了测试当前点是否在多边形的内部,上面的代码使用x,y坐标。只需使用经度而不是x和纬度作为y。
当区域越过北极或南极,并且越过基准极限(经度= -180到180)时,该代码可能无法工作,但在那里没人使用您的应用程序。
虽然不能总是使用在x,y(笛卡尔)平面上工作的指定公式,但在这里它也适用于球面经,纬,坐标。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句