2

locationManager startMonitoringForRegion メソッドを使用してマルチ リージョンの監視を開始するにはどうすればよいですか

たとえば、監視したい 3 つの地域があるとします。

CLLocationCoordinate2D centreLoc = {28.965243, 48.149724};
CLLocationDistance regionRadius = 200.00;
CLRegion *grRegion = [[CLRegion alloc] initCircularRegionWithCenter:centreLoc radius:regionRadius identifier:@"grRegion1"];


CLLocationCoordinate2D centreLoc2 = {28.765243, 48.149724};
CLLocationDistance regionRadius2 = 200.00;
CLRegion *grRegion2 = [[CLRegion alloc] initCircularRegionWithCenter:centreLoc2 radius:regionRadius2 identifier:@"grRegion2"];

CLLocationCoordinate2D centreLoc3 = {28.865243, 48.149724};
CLLocationDistance regionRadius3 = 200.00;
CLRegion *grRegion3 = [[CLRegion alloc] initCircularRegionWithCenter:centreLoc3 radius:regionRadius3 identifier:@"grRegion3"];

CLLocationAccuracy acc2=kCLLocationAccuracyBest;
[locationManager startMonitoringForRegion:grRegion2 desiredAccuracy:acc2];

この 3 つの地域の監視を開始するにはどうすればよいですか ???

4

1 に答える 1

0

あなたは正しい軌道に乗っています。

まず、座標は double 値である必要があります。float 値を使用しています。

次に、緯度と経度の配列を個別に作成し、それらの値をインデックス i で取得する必要があります。

これはうまくいくはずです。

for (int i = 0; i < [AllRegionsArray count]; i++) {
    NSArray *longLati = [allRegionsArray objectAtIndex:i];
    NSMutableArray *latArray = longLati objectAtIndex:0];
    NSMutableArray *longArray = longLati objectAtIndex:1];
    lutiuid = [latArray objectAtIndex:i];
    longtuid = [longArray objectAtIndex:i];

    CLLocationCoordinate2D centreLoc = [CLLocation2DMake([[lutiuid] doubleValue], [[longtuid] doubleValue]);
//iOS 6
    CLRegion *grRegion = [[CLRegion alloc] initWithCenter:centreLoc radius:200 identifier://yourIdentifier, I used the string of the address];
//iOS 7
CLCircularRegion *region = [[CLCircularRegion alloc] initWithCenter:coordinate radius:radius identifier:identifier];
    locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    [locationManager startMonitoringForRegion:grRegion];
    NSLog(@"monotoring regions:%@", locationManager.monitoredRegions);
于 2013-09-26T13:59:26.537 に答える