When i drop multiple pins in map depends on different latitude and longitude values. im getting all pins at one place only

StackOverflow https://stackoverflow.com/questions/14890117

  •  09-03-2022
  •  | 
  •  

Question

When i drop multiple pins in map depends on different latitude and longitude values. im getting all pins are at one place in map.

I wrote this code for dropping multiple pins .

    dealerMapView.mapType = MKMapTypeStandard;
    dealerMapView.zoomEnabled =YES;
    [dealerMapView setDelegate:nil];
    dealerMapView.scrollEnabled = YES;
    dealerMapView.showsUserLocation = NO;
    CLLocationCoordinate2D location;

        for (int i =0; i<[delarsInfoArray count]; i++) {

            NSString *lattitudeValue = [[delarsInfoArray objectAtIndex:i]objectForKey:@"LATITUDE" ];

            NSString *longitudeValue = [[delarsInfoArray objectAtIndex:i]objectForKey:@"LONGITUDE" ];
            CLLocationCoordinate2D pCoordinate ;
    pCoordinate.latitude = [lattitudeValue floatValue];
    pCoordinate.longitude = [longitudeValue floatValue];
    MKCoordinateRegion region;
    MKCoordinateSpan span;
    span.latitudeDelta = 0.005;
    span.longitudeDelta = 0.005;
    region.span = span;
    region.center = location;
    [dealerMapView setRegion:region animated:YES];
    myAnnotation1 = [[MyAnnotation alloc] init];
    myAnnotation1.coordinate = location;
    myAnnotation1.title = [[delarsInfoArray objectAtIndex:i]objectForKey:@"STORE"]; 
    [dealerMapView addAnnotation:myAnnotation1];
}
Was it helpful?

Solution

Try this code:

MKCoordinateSpan span;
span.latitudeDelta = 0.2;
span.longitudeDelta= 0.2;

if( [delarsInfoArray count] > 0 ){

    CLLocationCoordinate2D start;
    NSString *lattitudeValue = [[delarsInfoArray objectAtIndex:0]objectForKey:@"LATITUDE" ];

    NSString *longitudeValue = [[delarsInfoArray objectAtIndex:j]objectForKey:@"LONGITUDE" ];

// create region, consisting of span and location
    MKCoordinateRegion mapRegion;
    mapRegion.span = span;
    mapRegion.center = start;
//Move the map to our location //
    [dealerMapView setRegion:mapRegion animated:YES];
}
// do not show pins and annotations more then 200 in the map at a time.
for (int j = 0; j< ([delarsInfoArray count] < 200?[delarsInfoArray count]:200); j++) {
    NSString *lattitudeValue = [[delarsInfoArray objectAtIndex:i]objectForKey:@"LATITUDE"];
            NSString *longitudeValue = [[delarsInfoArray objectAtIndex:i]objectForKey:@"LONGITUDE" ];

    CLLocationCoordinate2D pinLocation;
    if(([lattitudeValue floatValue] != 0) && ([longitudeValue floatValue] != 0) ) {
        pinLocation.latitude = [lattitudeValue floatValue];
        pinLocation.longitude = [longitudeValue floatValue];
        if(pinLocation.latitude !=0 && pinLocation.longitude !=0) {
            myAnnotation1 = [[MyAnnotation alloc] init];
            myAnnotation1.coordinate = location;
            myAnnotation1.title = [[delarsInfoArray objectAtIndex:i] objectForKey: @"STORE"]; 
            [dealerMapView addAnnotation:myAnnotation1];
        }
    }
}

I hope it helps you!! Best Luck. Cheers!!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top