iPhone的地理围栏问题

时间:2011-05-10 09:56:33

标签: iphone ios4 geolocation location

如何使用iPhone实现Geo Fence。

是否可以实施任何库?

我想知道iPhone是内部由服务器定义的多边形或圆形还是 OUTSIDE 所以如果设备在指定范围之外,那么它应该告诉服务器

如何执行此类任务。

提前致谢

3 个答案:

答案 0 :(得分:3)

您可能想要使用CLLocationManager。请参阅CLLocationManagerDelegate。 这里有两种方法。

- (void)locationManager:(CLLocationManager *)manager
        didEnterRegion:(CLRegion *)region;


- (void)locationManager:(CLLocationManager *)manager
    didExitRegion:(CLRegion *)region;

答案 1 :(得分:2)

有多种方法可以计算您的多边形内部还是外部。最简单的方法是使用W. Randolph Franklin

在此函数中详述的光线投射方法
int pnpoly(int nvert, float *vertx, float *verty, float testx, float testy)
{
  int i, j, c = 0;
  for (i = 0, j = nvert-1; i < nvert; j = i++) {
    if ( ((verty[i]>testy) != (verty[j]>testy)) &&
     (testx < (vertx[j]-vertx[i]) * (testy-verty[i]) / (verty[j]-verty[i]) + vertx[i]) )
       c = !c;
  }
  return c;
}

为了测试圆圈内部或外部的agsint,只需计算到圆心的距离,然后确定它是否比半径短。

答案 2 :(得分:1)

Yeapy,

我有解决方案

Here是相同的示例代码。它显示了如何从区域中找到输入的区域和方法实现。