Как сбросить булавку, а также получить текущее местоположение и координаты из тайлов автономной карты? - PullRequest
1 голос
/ 20 февраля 2012

Пожалуйста, помогите мне, я хочу получить координаты дроппина, а также узнать текущее местоположение в тайлах автономной карты.как это возможно?пожалуйста, помогите мне.

Ответы [ 4 ]

0 голосов
/ 28 января 2013
     MKMapView *locationMap = [[MKMapView alloc] initWithFrame:CGRectMake(0,86, 320, 334)];
        [self.view addSubview:locationMap];
        locationMap.alpha = 1.0;
        locationMap.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin;
        locationMap.mapType = MKMapTypeStandard;
        locationMap.delegate = self;
        locationMap.showsUserLocation = YES;


- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation
{
    MKAnnotationView *a = [ [ MKAnnotationView alloc ] initWithAnnotation:annotation reuseIdentifier:@"currentloc"];
    //  a.title = @"test";
    if ( a == nil )
        a = [ [ MKAnnotationView alloc ] initWithAnnotation:annotation reuseIdentifier: @"currentloc" ];

    NSLog(@"%f",a.annotation.coordinate.latitude);
    NSLog(@"%f",a.annotation.coordinate.longitude);

    CLLocation* currentLocationMap = [[[CLLocation alloc] initWithLatitude:a.annotation.coordinate.latitude longitude:a.annotation.coordinate.longitude] autorelease];
    [self coordinatesToDMS:currentLocationMap];


    MKPinAnnotationView *annView=[[MKPinAnnotationView alloc] initWithAnnotation:a reuseIdentifier:@"currentloc"];
    if(a.annotation.coordinate.longitude == mapView.userLocation.coordinate.longitude ||  a.annotation.coordinate.latitude == mapView.userLocation.coordinate.latitude  )
    {
        if ([annotation isKindOfClass:MKUserLocation.class]) {
            //user location view is being requested,
            //return nil so it uses the default which is a blue dot...
            return nil;
        }       
        //a.image = [UIImage imageNamed:@"userlocation.png"];
        //a.pinColor=;
    }
    else 
    {

        // annView.image =[UIImage imageNamed:@"map-pin.png"];
        //PinFirst=FALSE;
        //annView.pinColor = [UIColor redColor];
        // annView.annotation=annotation;
    }

    annView.animatesDrop = YES;
    annView.draggable = YES;

    annView.canShowCallout = YES;

    return annView;
}
0 голосов
/ 20 февраля 2012

Этот метод даст вам координаты выбранного метода, а вышеупомянутый метод (упомянутый Готи) - поместить аннотацию в нужное место.

 -(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)annotationView
    {   
        if([annotationView class]==[MKAnnotationView class])
        {
            CLLocationCoordinate2D coord = annotationView.annotation.coordinate;        
            NSLog(@"Latitude -> %f",coord.latitude);
                  NSLog(@"Longitude -> %f",coord.longitude);
        }
    }

Надеюсь, это будет полезно.

0 голосов
/ 20 февраля 2012

Вы не получите свое текущее местоположение на карте в автономном режиме, используя MKMapView. Для выполнения всех ваших задач используйте cloudmade map API.

0 голосов
/ 20 февраля 2012

Реализуйте этот код ...

-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:
(id <MKAnnotation>)annotation {
MKPinAnnotationView *pinView = nil; 
if(annotation != mapView.userLocation) 
{
    static NSString *defaultPinID = @"com.invasivecode.pin";
    pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
    if ( pinView == nil ) pinView = [[[MKPinAnnotationView alloc]
                                      initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];

    pinView.pinColor = MKPinAnnotationColorRed; 
    pinView.canShowCallout = YES;
    pinView.animatesDrop = YES;
} 
else {
    [mapView.userLocation setTitle:@"I am here"];
}
return pinView;
}

и для текущего местоположения .... насколько я знаю, вы не можете получить текущее местоположение в симуляторе.Итак, один из вариантов - добавить файл .gpx в ваш проект.Вы можете добавить это, выполнив поиск с помощью .gpx.Установите текущее местоположение в этом файле, lat и lon.Это то, что я знаю.Я только что сделал ту же задачу ... Удачи ..:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...