2013-05-13 2 views
1

지도보기에 여러 개의 주석이 있습니다. 내 탐색 막대에 설정 버튼이 있습니다.이 버튼을 사용하면 사용자가 모든 주석을 표시하거나 현재 위치에서 반경을 5, 10, 25, 50 또는 100 마일로 선택할 수있는 선택기보기로 이동하므로 볼 수 있습니다. 선택된 반경에 대한 주석. 나는 단지지도가 선택된 반경에 대한 주석 만 표시하는 방법에 대해 확신하지 못합니다. 누군가가 적어도 올바른 방향으로 나를 가리킬 수 있습니까? 여기 지도보기 선택된 반경에 대한 주석보기

가 맵입니다 :

#import "RSFM.h" 
#import "AnnotationDetailView.h" 
#import "MapSettings.h" 

@interface RSFM() 

@end 

@implementation RSFM 
{ 

} 

@synthesize centerCoordinate, coordinate, title, subtitle, marketAnnotation, location; 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 

    if (self) 
    { 
     self.title = NSLocalizedString(@"Farm Markets", @"Farm Markets"); 
     // Create location manager object 
     locationManager = [[CLLocationManager alloc]init]; 

     [locationManager setDelegate:self]; 

     // And we want it to be as accurate as possible regardless of how much time/power it takes 
     [locationManager setDesiredAccuracy:kCLLocationAccuracyThreeKilometers]; 

     // Tell our manager to start looking for its location immediately 
     // [locationManager startUpdatingLocation]; 
    } 

    return self; 
} 
/* 
- (void)setCenterCoordinate:(CLLocationCoordinate2D)centerCoordinate 
{ 
    centerCoordinate = CLLocationCoordinate2DMake(37.7885, 85.3279); 
} 
*/ 
- (void)findLocation 
{ 
    [locationManager startUpdatingLocation]; 
    [activityIndicator startAnimating]; 
    // [locationTitleField setHidden:YES]; 
    [locationManager stopUpdatingLocation]; 
} 

- (void)foundLocation:(CLLocation *)loc 
{ 
    CLLocationCoordinate2D coord = [loc coordinate]; 

    // Zoom the region to this location 
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(coord, 400000, 400000); 
    [worldView setRegion:region animated:YES]; 

    // Reset the UI 
    // [locationTitleField setText:@""]; 
    [activityIndicator stopAnimating]; 
    // [locationTitleField setHidden:NO]; 
    [locationManager stopUpdatingLocation]; 
} 

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 
{ 
    NSLog(@"%@", newLocation); 

    // How many seconds ago was this new location created? 
    NSTimeInterval t = [[newLocation timestamp]timeIntervalSinceNow]; 

    // CLLocationManagers will return the last found location of the device first, you don't want that data in this case. 
    // If this location was made more than 3 minutes ago, ignore it. 
    if (t < -180) 
    { 
     // this is cached data, you don't want it, keep looking 
     return; 
    } 

    [self foundLocation:newLocation]; 
} 

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error 
{ 
    NSLog(@"Could not find location: %@", error); 
} 

- (void)dealloc 
{ 
    // Tell the location manager to stop sending us messages 
    [locationManager setDelegate:nil]; 
} 

- (MKAnnotationView*)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation 
{ 
    // If it's the user location, return nil 
    if ([annotation isKindOfClass:[MKUserLocation class]]) 
     return nil; 

    // Try to dequeue an existing pin view first 
    static NSString *annotationIdentifier = @"AnnotationIdentifier"; 
    MKPinAnnotationView *pinView = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:annotationIdentifier]; 
    pinView.animatesDrop = NO; 
    pinView.pinColor = MKPinAnnotationColorRed; 
    pinView.canShowCallout = YES; 

    UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; 
    [rightButton setTitle:annotation.title forState:UIControlStateNormal]; 
    pinView.rightCalloutAccessoryView = rightButton; 

    return pinView; 
} 

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control 
{ 
    AnnotationDetailView *detail = [[AnnotationDetailView alloc] initWithNibName:nil bundle:nil]; 
    id<MKAnnotation> ann = [mapView.selectedAnnotations objectAtIndex:0]; 
    ann = view.annotation; 
    CLLocationCoordinate2D annCoord; 
    annCoord.latitude = ann.coordinate.latitude; 
    annCoord.longitude = ann.coordinate.longitude; 
    detail.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
    NSLog(@"%@", ann.title); 
    NSLog(@"%@", ann.subtitle); 
    detail.annTitle = ann.title; 
    detail.annSub = ann.subtitle; 
    detail.latText = [NSString localizedStringWithFormat:@"%f",annCoord.latitude]; 
    detail.longText = [NSString localizedStringWithFormat:@"%f", annCoord.longitude]; 
    [self.navigationController pushViewController:detail animated:YES]; 
} 

- (IBAction)mapSettingsButtonPressed:(id)sender 
{ 
    MapSettings *mapSettings = [[MapSettings alloc] initWithNibName:nil bundle:nil]; 
    [self.navigationController pushViewController:mapSettings animated:YES]; 
} 

- (void)viewDidLoad 
{ 
    [locationManager startUpdatingLocation]; 
    [worldView setShowsUserLocation:YES]; 
    [locationManager stopUpdatingLocation]; 

    UIBarButtonItem *settingsButton = [[UIBarButtonItem alloc] initWithTitle:@"\u2699" style:UIBarButtonItemStyleBordered target:self action:@selector(mapSettingsButtonPressed:)]; 
    [settingsButton setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont boldSystemFontOfSize:24], UITextAttributeFont,nil] forState:UIControlStateNormal]; 
    self.navigationItem.rightBarButtonItem = settingsButton; 


    NSMutableArray *marketLocations = [[NSMutableArray alloc]init]; 

    NSMutableArray *lat = [[NSMutableArray alloc]initWithObjects:@"37.7867266", @"37.0703517", @"37.1610806", @"37.318367", @"37.3559204", @"37.4154066", @"37.4757622", @"37.7450252", @"37.6318978", @"37.0716803", @"36.7333486", @"36.8637044", @"36.9181305", @"36.8736459", @"36.93253", @"37.0436832", @"37.1516087", @"36.712052", @"36.8082663", @"37.1799935", @"37.8928444", @"37.7488563", @"37.499522", @"37.5882222", @"37.4991846", @"37.5392879", @"37.3721288", @"37.1922315", @"37.102841", @"36.9813651", @"36.660251", @"37.1301316", @"37.1734765", @"37.0505279", @"36.9179492", @"37.2742692", @"37.2116415", @"37.2412938", @"37.2696374", @"37.5464147", @"37.5693561", @"37.7146149", @"37.7647463", @"37.635366", @"37.6417237", @"37.8515069", @"37.6840096", @"37.6000712", @"37.6655401", @"37.6668541", @"37.710869", @"37.7101039", @"37.8721419", @"37.9711379", @"38.0069215", @"38.135998", @"38.105713", @"38.160352", @"38.223825", @"38.188871", @"38.235703", @"38.3586935", @"38.3069755", @"38.6109009", @"38.3600355", @"38.4004693", @"38.5997367", @"38.6414842", @"38.5741722", @"38.1756649", @"38.2686626", @"38.4329612", @"38.673506", @"38.1916673", @"38.2265882", @"38.7363261", @"38.9734399", @"38.977975", @"38.8985392", @"38.903505", @"38.7418795", @"38.5102869", @"38.4260502", @"38.2687025", @"38.2097987", @"38.2074495", @"38.1356551", @"38.1245065", @"38.036634", @"37.9976315", @"37.7785109", @"37.9324058", @"37.9442351", @"37.9631701", @"37.9572905", @"38.0575357", @"37.8184352", @"37.920693", @"37.6256607", @"38.8029428", @"37.911885", @"38.4948355", @"38.5124872", @"38.359333", @"37.5453841", @"36.7641572", @"37.5846472", nil]; 

    NSMutableArray *lon = [[NSMutableArray alloc]initWithObjects:@"-87.608209", @"-88.1237899", @"-87.9148629", @"-87.5074402", @"-87.5448032", @"-87.8003148", @"-87.9515986", @"-87.9061638", @"-87.1148574", @"-87.3008418", @"-87.5661605", @"-87.290597", @"-86.8270899", @"-86.6544847", @"-86.490067", @"-86.4558939", @"-86.2038694", @"-86.3287002", @"-85.9428197", @"-85.8312895", @"-86.2219159", @"-85.8042332", @"-85.8837926", @"-85.6896553", @"-85.6185338", @"-85.3974197", @"-85.3594512", @"-85.5906947", @"-85.3063504", @"-85.060269", @"-85.212777", @"-84.8720139", @"-84.8137247", @"-84.5698918", @"-84.1312625", @"-84.4614493", @"-84.4802606", @"-84.4223536", @"-84.6410206", @"-84.4564877", @"-84.2884479", @"-84.4089207", @"-84.3655048", @"-84.5597937", @"-84.7606165", @"-84.8732843", @"-85.2055835", @"-85.0401771", @"-85.248661", @"-85.1834814", @"-85.261238", @"-85.259706", @"-85.3155742", @"-85.689489", @"-85.8210816", @"-85.503977", @"-85.654787", @"-85.855705", @"-85.592095", @"-85.520966", @"-85.156767", @"-85.1048516", @"-85.1471807", @"-85.1186233", @"-85.5047839", @"-85.3788328", @"-85.3060421", @"-85.3237933", @"-85.2994716", @"-84.8965549", @"-84.6066196", @"-84.8581488", @"-84.8477954", @"-84.541101", @"-84.5685446", @"-84.6280011", @"-84.721179", @"-84.749313", @"-84.6090422", @"-84.441984", @"-84.0662604", @"-83.8971076", @"-83.8566679", @"-84.2433673", @"-84.2529869", @"-84.4785665", @"-84.3652534", @"-84.3541421", @"-84.551631", @"-84.7000274", @"-84.5389521", @"-84.3865064", @"-84.2261198", @"-84.2162117", @"-83.793939", @"-83.9017386", @"-84.0842092", @"-83.2513743", @"-83.5944371", @"-81.2244293", @"-82.748201", @"-82.8310584", @"-82.7304443", @"-83.5611122", @"-84.3922468", @"-86.8666113",@"-87.2933751", nil]; 

    NSMutableArray *title1 = [[NSMutableArray alloc]initWithObjects:@"Cates Farm", @"Broadbent B & B Foods", @"Cayce's Pumpkin Patch", @"Metcalfe Landscaping", @"Brumfield Farm Market", @"Dogwood Valley Farm", @"Country Fresh Meats & Farmers Market", @"Jim David Meats", @"Trunnell's Farm Market", @"Lovell's Orchard & Farm Market", @"Zook's Produce", @"The Country Barn", @"Poore's Nursery & Farms", @"Just Piddlin Farm", @"Chaney's Dairy Barn & Restaurant", @"Jackson's Orchard & Nursery, Inc.", @"Mammoth Cave Transplants", @"Habegger's Amish Market", @"Kenny's Farmhouse Cheese", @"Dennison's Roadside Market", @"Roberts Family Farm", @"Wooden Farm", @"Jordan Greenhouses", @"Lee's Garden Center, Florist & Gift Shop", @"Hinton's Orchard & Farm Market", @"Serenity Farm Alpacas", @"Burton's Nursery & Garden Center", @"Davis Family Farms", @"Heavenly Haven Farm", @"French Valley Farms", @"Cravens Greenhouse", @"Haney's Appledale Farm", @"Hettmansperger's Greenhouse", @"D & F Farms", @"Double Hart Farm", @"Owens Garden Center", @"Hail's Farm", @"Sinking Valley Vineyard & Winery, Inc.", @"Todd's Greenhouse & Florist, LLC", @"McQuerry's Family Farm-Herbs-N-Heirlooms", @"Berea College Farm & Gardens", @"Acres of Land Winery & Restaurant", @"Baldwin Farms", @"Wonder of Life Farm", @"Chateau du Vieux Corbeau Winery/Old Crow Farm Winery", @"Devine's Farm & Corn Maze", @"Flaggy Meadow Fiber Works & Sunshine Alpacas of Kentucky", @"Williams Country Market", @"Serano Alpacas & Yarns", @"1851 Historic Maple Hill Manor B & B, Alpaca & Llama Farm, & Fiber Farm Store", @"Campbell Farm Wool Art Center", @"St. Catharine Farm", @"Capture Your Heart Alpacas", @"Ridgeview Greenhouse & Nursery", @"Country Corner Greenhouse & Nursery, Inc", @"Sunny Acres Farm", @"Morrison's Greenhouses", @"George Gagel Farm Market, LLC", @"Thieneman's Herbs & Perennials", @"Tower View Farm & Nursery", @"Gallrein Farms", @"Sweet Home Spun in the Low Dutch Meetinghouse", @"Mulberry Orchard, LLC", @"Gregory Farms", @"Foxhollow Farm Store", @"Sherwood Acres Beef", @"Bray Orchard & Roadside Market", @"Callis Orchards", @"Bray Fruit", @"Wilson's Nursery", @"Triple J Farm", @"Ayres Family Orchard", @"Michels Family Farm", @"Amerson Farm", @"Bi-Water Farm & Greenhouse", @"Alpine Hills Dairy Tour/Country Pumpkins", @"Blue Ribbon Market", @"Eagle Bend Alpacas Fiber & Gift Shoppe", @"Benton Farms", @"Redman's Farm",@"The Greenhouse in Gertrude", @"Croppers Greenhouse & Nursery", @"McLean's Aerofresh Fruit", @"Julie's Pumpkins", @"Reed Valley Orchard", @"Evans Orchard & Cider Mill", @"Kentucky Green Market", @"Antioch Daylily Garden", @"Golden Apple Fruit Market", @"Boyd Orchards", @"Serenity Hill Fiber & Living History Farm", @"Kelley Farms", @"Beech Springs Farm Market", @"Yuletide Tree Farm & Nursery", @"Townsend's Sorghum Mill and Farm Market", @"Bramble Ridge Orchard", @"C2H2 Farm Market", @"Fannin's Vegetables", @"Country Garden Greenhouse", @"Golden Apple Fruit Market", @"Black Barn Produce, LLC", @"Imel's Greenhouse", @"Feathered Wing Farm Market", @"Hutton-Loyd Tree Farm", @"Halcomb's Knob, LLC", @"Martin Farms", @"Happy Hollow Farms",nil]; 

    NSMutableArray *subtitle1 = [[NSMutableArray alloc]initWithObjects:@"Hwy 425 Henderson, KY 42420", @"257 Mary Blue Road Kuttawa, KY 42055", @"153 Farmersville Road Princeton, KY 42445", @"410 Princeton Road Madisonville, KY 42431", @"3320 Nebo Road Madisonville, KY 42431", @"4551 State Route 109N Clay, KY 42404", @"9355 US Hwy 60 W Sturgis, KY 42459",@"350 T. Frank Wathen Rd. Uniontown, KY 42461", @"9255 Hwy 431 Utica, KY 42376", @"22850 Coal Creek Road Hopkinsville, KY 42240", @"Intersection of KY107 & KY117 Herndon, KY 42240", @"112 Britmart Road Elkton, KY 42220", @"5486 Morgantown Road Russellville, KY 42276", @"10830 S. Morgantown Rd. Woodburn, KY 42170", @"9191 Nashville Road, Bowling Green, KY 42101", @"1280 Slim Island Road Bowling Green, KY 42101", @"5394 Brownsville Road Brownsville, KY 42210", @"945 Perrytown Road Scottsville, KY 42164", @"2033 Thomerson Park Road Austin, KY 42123", @"5824 S. Jackson Hwy. Horse Cave, KY 42749", @"125 Kennedy Road Guston, KY 40142", @"1869 Wooden Lane Elizabethtown, KY 42701", @"13287 Dixie Highway Upton, KY 42784", @"1918 Bardstown Road Hodgenville, KY 42748", @"8631 Campbellsville Road Hodgenville, KY 42748", @"1380 Frogg Lane Raywick, KY 40060", @"2212 Saloma Road Campbellsville, KY 42718", @"313 Hwy 1464 Greensburg, KY 42743", @"230 Heavenly Lane Columbia, KY 42728", @"1842 N. Main St. Jamestown, KY 42629", @"500 Cedar Hill Road Albany, KY 42602", @"8350 West 80 Nancy, KY 42544-8756", @"3917 N. Hwy 837 Science Hill, KY 42553", @"755 Elihu Rush Branch Road Somerset, KY 42501", @"6550 Cumberland Falls Road Corbin, KY 40701", @"735 Latham Road Somerset, KY 42503", @"Hwy 461, at 3 mile marker Somerset, KY 42503", @"1300 Plato-Vanhook Road Somerset, KY 42503", @"35 Skyline Drive Eubank, KY 42567", @"169 Pine Hill Road Paint Lick, KY 40461", @"230 N. Main St. Berea, KY 40404", @"2285 Barnes Mill Road Richmond, KY 40475", @"1113 Tates Creek Road Richmond, KY 40475", @"686 Buckeye Road Lancaster, KY 40444", @"471 Stanford Avenue Danville, KY 40422-1927", @"623 Talmage-Mayo Road Harrodsburg, KY 40330", @"2110 Mackville Road Springfield, KY 40069", @"4189 Craintown Rd. Gravel Switch, KY 40328", @"1805 Booker Road Springfield, KY 40069", @"2941 Perryville Road, US 150 Springfield, KY 40069", @"2888 Bardstown Road Springfield, KY 40069", @"2645 Bardstown Road Springfield, KY 40061", @"9430 Bloomfield Road Bloomfield, KY 40008", @"460 Buffalo Run Road Shepherdsville, KY 40165", @"4877 Hwy 44E Shepherdsville, KY 40165", @"6516 Echo Trail Jeffersontown, KY 40299", @"5613 Cooper Chapel Road Louisville, KY 40229", @"2400 Lower Hunters Trace Louisville, KY 40216", @"9120 Blowing Tree Road Louisville, KY 40220", @"12523 Taylorsville Road Jeffersontown, KY 40299", @"1029 Vigo Road Shelbyville, KY 40065", @"6805 Castle Hwy. Pleasureville, KY 40057", @"1330 Mulberry Pike Shelbyville, KY 40065", @"985 Vance Road Turners Station, KY 40075", @"8905 Hwy 329 Crestwood, KY 40014", @"215 Parker Drive LaGrange, KY 40031", @"2580 Hwy 42 W. Bedford, KY 40006", @"3721 Hwy 421 N Bedford, KY 40006", @"1660 Highway 421 N Bedford, KY 40006", @"3690 East-West Connector (Rte 676) Frankfort, KY 40601", @"2287 Long Lick Road Georgetown, KY 40324", @"525 Wilson Lane Owenton, KY 40359", @"4275 Hwy 1316 Sparta, KY 41086", @"130 McClelland Circle Georgetown, KY 40324", @"877 Cincinnati Road Georgetown, KY 40324", @"2165 Sherman Mount Zion Rd. Dry Ridge, KY 41035", @"8707 Camp Ernst Road Union, KY 41091", @"7812 East Bend Road Burlington, KY 41005", @"11896 Old Lexington Pike Walton, KY 41094", @"12449 Decoursey Pike Morning View, KY 41063", @"3246 Augusta-Berlin Road Brooksville, KY 41004", @"5350 Raymond Road May's Lick, KY 41055", @"4085 Ewing Road Ewing, KY 41039", @"1069 Ruddles Mill Road Paris, KY 40361", @"239 Lail Lane Paris, KY 40361", @"180 Stone Road Georgetown, KY 40324", @"5751 Lexington Rd. Lexington, KY 40511", @"2231 Houston Antioch Road Lexington, KY 40516", @"1801 Alexandria Drive Lexington, KY 40504", @"1396 Pinckard Pike Versailles, KY 40383", @"1371 Beverly Lane Nicholasville, KY 40356", @"6483 Old Richmond Road Lexington, KY 40515", @"4776 Old Boonesboro Road Winchester, KY 40391", @"3925 Old Boonesboro Road Winchester, KY 40391", @"11620 Main Street Jeffersonville, KY 40337", @"2726 Osborne Road Mt. Sterling, KY 40353", @"1098 Harris Ferry Road Irvine, KY 40336", @"2140 Hwy 460W West Liberty, KY 41472", @"99 Union Road Beattyville, KY 41311", @"1523 Hwy 119 North Whitesburg, KY 41815", @"52 KY Route 3224 River, KY 41254", @"2836 State Route 1 Greenup, KY 41144", @"45 Katherine Lane Greenup, KY 41144", @"1483 Big Run Road Wallingford, KY 41093", @"430 Wallacetown Road Paint Lick, KY 40461", @"5595 Nashville Road Russellville, KY 42276", @"9730 KY 136W Calhoun, KY 42327", nil]; 

    NSLog(@" Lat Count: %lu", (unsigned long)[lat count]); 
    NSLog(@" Long Count: %lu", (unsigned long)[lon count]); 
    NSLog(@" Title Count: %lu", (unsigned long)[title1 count]); 
    NSLog(@" Subtitle Count: %lu", (unsigned long)[subtitle1 count]); 

    // CLLocationCoordinate2D location; 
    // MKPointAnnotation *marketAnnotation; 

    for (int x = 0; x < [lat count]; x++) 
    { 
     marketAnnotation = [[MKPointAnnotation alloc]init]; 
     location.latitude = [[lat objectAtIndex:x]floatValue]; 
     location.longitude = [[lon objectAtIndex:x]floatValue]; 
     marketAnnotation.coordinate = location; 
     marketAnnotation.title = [title1 objectAtIndex:x]; 
     marketAnnotation.subtitle = [subtitle1 objectAtIndex:x]; 
     [marketLocations addObject:marketAnnotation]; 
    } 

    [worldView addAnnotations:marketLocations]; 
} 

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation 
{ 
    CLLocationCoordinate2D loc = [userLocation coordinate]; 

    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(loc, 400000, 400000); 
    [worldView setRegion:region animated:YES]; 
    [locationManager stopUpdatingLocation]; 
    locationManager.delegate = nil; 
} 

- (IBAction)selectSegmentControl 
{ 
    int segmentTouched = [mapVarieties selectedSegmentIndex]; 
    NSString *segmentName = [mapVarieties titleForSegmentAtIndex:segmentTouched]; 
    if ([segmentName isEqualToString:@"Street"]) 
    { 
     [worldView setMapType:MKMapTypeStandard]; 
    } 
    if ([segmentName isEqualToString:@"Satellite"]) 
    { 
     [worldView setMapType:MKMapTypeSatellite]; 
    } 
    if ([segmentName isEqualToString:@"Hybrid"]) 
    { 
     [worldView setMapType:MKMapTypeHybrid]; 
    } 
} 

@end 

그리고 여기에 설정이 선택기보기로 볼 수 있습니다 :

#import "MapSettings.h" 

@interface MapSettings() 

@end 

@implementation MapSettings 

@synthesize radiusPicker, radiusArray; 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
     self.title = @"Map Settings"; 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    radiusArray = [[NSMutableArray alloc]initWithObjects:@"Show All", @"5 Miles", @"10 Miles", @"25 Miles", @"50 Miles", @"100 Miles", nil]; 

    radiusPicker = [[UIPickerView alloc]init]; 
    [radiusPicker setDataSource:self]; 
    [radiusPicker setDelegate:self]; 
    [radiusPicker setFrame:CGRectMake(88, 125, 144, 150)]; 
    radiusPicker.showsSelectionIndicator = YES; 
    [radiusPicker selectRow:0 inComponent:0 animated:YES]; 
    [self.view addSubview: radiusPicker]; 
} 

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
{ 
    return 1; 
} 

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{ 
    return [radiusArray count]; 
} 

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
    return [radiusArray objectAtIndex: row]; 
} 

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 
    NSLog(@"%@", [radiusArray objectAtIndex: row]); 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

@end 
+0

정말로 하시겠습니까? 거리별로 목록의 항목을 제한하는 것은 좋은 생각이지만지도에서 제한하는 것은 바람직하지 않습니다. 사용자가지도를 축소하면 볼 수있는지도 부분에있는 데이터를 표시해야합니다. 지도의 초기 영역을 설정하기 위해 선택기를 사용하는 것이 더 좋지만 모든 주석을 추가하여 사용자가지도를 이동하면 선택기로 돌아가서지도를 다시 설정할 필요없이 원하는 항목을 볼 수 있도록 할 수 있습니다. 필터. – Craig

+0

그게 더 좋은 생각 같아. 피커가 선택한 지역에 따라지도 영역을 설정하게하려면 어떻게해야합니까? – raginggoat

+0

설정보기 컨트롤러를 모달로 여는 것이 좋을 것 같습니다. 그런 다음 닫으면지도보기 컨트롤러로 돌아가서 지금 닫힌 설정 페이지에서 값을 뽑습니다. 그 이상이라면 새로운 질문을해야 할 것입니다. – Craig

답변

0

CLLocation 클래스는 방법

- (CLLocationDistance)distanceFromLocation:(const CLLocation *)location 

이있는 당신이 할 수있는 현재 사용자의 위치와 주석 간의 거리를 계산할 때 사용합니다. fx가 10km 미만인 경우 주석을지도에 추가해야합니다. 그렇지 않으면 건너 뜁니다.

관련 문제