これは、ジオフェンスを作成するための私のコードです:
Geofence *geofence = [[Geofence alloc] init];
[geofence setRadius:100.0];
[geofence setIdentifier: @"Fence1"];
[geofence setLocation:currentlocation];
CLRegion *region1 = [[CLCircularRegion alloc] initWithCenter:[geofence.location coordinate]
radius:geofence.radius
identifier:geofence.identifier];
region1.notifyOnEntry=YES;
region1.notifyOnExit=YES;
[self.locationManager startMonitoringForRegion:region1];
上記のコードが機能し、ジオフェンスが作成されたと言えます。しかし、私が遭遇した問題があります。
.gpx ファイル (現在の場所のシミュレーションに使用します) があり、地域/ジオフェンスの中心からの距離は次のとおりです: 55m、90m、150m、200m、300m、500m、1Km、5Kmそして10キロ。
私の問題は、ジオフェンスの中心からの距離が 55m、90m、150、200m、300m、500m、1km である gpx ファイルを使用してシミュレートすると、ジオフェンスの半径が実際には 100m ではないように見えることです。LocationManager -didEnterRegion
およびのデリゲート メソッドは-didExitRegion
、半径がちょうど「100m」のジオフェンス内にいることを応答しています。
ジオフェンスの中心からの距離が 5Km と 10km の gpx ファイルのみが、前述のデリゲート メソッドから、私がジオフェンスの外にいると応答します。
このシナリオを解決するのを手伝ってもらえますか?