0

ユーザーが特定の場所に移動したときにマップピンを挿入するマップアプリケーションがあります。私の質問は、ユーザーが同じ場所を通過した、または同じ場所にいた回数をどのようにカウントするかです。

次の例にあります。

ユーザーは場所Aに(緯度、経度)で5回滞在しています。

これが私がこれまでに持っているコードです:

[outletMapView setMapType:MKMapTypeStandard];
                    [outletMapView setZoomEnabled:YES];
                    [outletMapView setScrollEnabled:YES];

                    MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } };
                    region.center.latitude = [[eachObject objectForKey:@"latitudeFrom"] floatValue];
                    //NSLog(@"latitudeFrom=%f",[[eachObject objectForKey:@"latitudeFrom"] floatValue]);
                    region.center.longitude = [[eachObject objectForKey:@"longitudeFrom"] floatValue];
                    //NSLog(@"longitudeFrom=%f",[[eachObject objectForKey:@"longitudeFrom"] floatValue]);
                    region.span.longitudeDelta = 6;
                    region.span.latitudeDelta = 7;
                    [outletMapView setRegion:region animated:YES];
                    /////
                    float longitude = [[eachObject objectForKey:@"latitudeFrom"] floatValue];
                    float latitude = [[eachObject objectForKey:@"longitudeFrom"] floatValue];

                    CLLocationCoordinate2D locationco = {latitude,longitude};

                    ann = [[DisplayMap alloc] init];
                    ann.coordinate = locationco;
                    ann.title = [eachObject objectForKey:@"setDepartureAirportOrCode"];

                    int count=0;
                    for(int j = aux; j < [objects count]; j++){
                        for(int k = j+1;k < [objects count]-j;k++){
                            NSMutableDictionary *item1 = [objects objectAtIndex:j];
                            NSMutableDictionary *item2 = [objects objectAtIndex:k];

                            NSString *str1 = [item1 valueForKey:@"setDepartureAirportOrCode"];
                            NSString *str2 = [item2 valueForKey:@"setDepartureAirportOrCode"];
                           // NSLog(@"%@==%@ ???",str1,str2);
                            if([str1 isEqualToString:str2])
                                 NSLog(@"%@==%@ MATCH!!!",str1,str2);
                                count++;
                        }
                    }



                    /* Contagem */

                    ann.subtitle = [NSString stringWithFormat:@"%d",count];
                    ann.coordinate = region.center;
                    [outletMapView addAnnotation:ann];

私の英語が下手で申し訳ありませんが、レートを下げないでください。質問や疑問がある場合は、常にオンラインで私に質問します。

4

2 に答える 2

1

各ピンの周囲に領域を設定し、デバイスが近づいたときに通知するようにcllocationmanagerに指示することができます。

CLLocationAccuracy acc = kCLLocationAccuracyNearestTenMeters;
[self.locationManager startMonitoringForRegion:aRegion desiredAccuracy:acc];

コールバック(デリゲートメソッドdidEnterRegion)を取得すると、カウンターをインクリメントできます

- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
   NSLog(@"GeoFence: didEnterRegion");    
}

リージョンごとにインクリメントする必要のあるカウンターを決定するのはあなたに任せます

于 2012-11-19T20:48:53.813 に答える
0

[オブジェクト数]を使用して、すでにピンの数があります。

于 2012-11-19T13:17:44.473 に答える