Это мой код для создания геозоны:
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 (в которых я буду использовать для моделирования моего текущего местоположения), их расстояния от центра региона/геозоны следующие: 55 м, 90 м, 150 м, 200 м, 300 м, 500 м, 1 км, 5 км и 10км.
Моя проблема в том, что кажется, что мой радиус геозоны на самом деле не 100 м, потому что, когда я моделирую файлы gpx, расстояние от центра геозоны которых составляет 55 м, 90 м, 150, 200 м, 300 м, 500 м, 1 км. Методы делегата LocationManager -didEnterRegion
и -didExitRegion
отвечают, что я нахожусь в пределах своей геозоны, радиус которой составляет всего «100 м».
Только файлы gpx с расстояниями от моего центра геозоны, которые составляют 5 км и 10 км, отвечают из указанных методов делегата, что я нахожусь за пределами геозоны.
Можете ли вы помочь мне решить этот сценарий, ребята?