1

これは、ジオフェンスを作成するための私のコードです:

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 ファイルのみが、前述のデリゲート メソッドから、私がジオフェンスの外にいると応答します。

このシナリオを解決するのを手伝ってもらえますか?

ここに画像の説明を入力

4

1 に答える 1