gpt4 book ai didi

gps - 如何将应用程序的可用性限制在某个地理区域 ANDROID

转载 作者:行者123 更新时间:2023-12-02 17:23:22 27 4
gpt4 key购买 nike

我想定义一个地理边界,超出该边界,应用程序将拒绝工作。我已经知道如何使用由两个纬度/经度对包围的正方形来做到这一点:

 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 个经度、纬度坐标。

使用多边形中的点方法:

Point in Polygon Algorithm

要测试当前点是否在多边形外部的内部,上面的代码使用 x,y 坐标。只需使用经度代替 x,使用纬度代替 y。
当该区域跨越北极或南极以及跨越基准限制(经度边界 = -180 到 180)时,该代码可能不起作用,但那里没有人使用您的应用程序。

虽然不能总是使用公式设计在 x,y(笛卡尔)平面上工作,但它在这里也适用于球面纬度、经度坐标。

关于gps - 如何将应用程序的可用性限制在某个地理区域 ANDROID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36929834/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com