如何使用iPhone实现Geo Fence。
是否可以实施任何库?
我想知道iPhone是内部由服务器定义的多边形或圆形还是 OUTSIDE 所以如果设备在指定范围之外,那么它应该告诉服务器
如何执行此类任务。
提前致谢
答案 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)