2011-05-10 37 views
1

如何使用iPhone实施地理围栅。iPhone的地理围栏问题

是否有任何库可用于实现?

我想知道iPhone是否是的多边形或圆形的服务器定义或OUTSIDE所以如果设备出方指定的范围内,那么它应该告诉服务器。

如何执行此类任务。

在此先感谢

回答

3

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

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


- (void)locationManager:(CLLocationManager *)manager 
    didExitRegion:(CLRegion *)region; 
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内或外循环,才算你的距离为圆心,并确定它是短于半径如果它。

1

Yeapy,

我已经得到了解决

Here是相同的示例代码。它显示了该区域以及如何从该区域找到入口的方法实施。