2012-02-20 16 views
1

は私がdroppinの座標を取得したいともオフラインマップタイルで現在位置を取得したい私を助けてください。どのように可能ですか?私を助けてください。ピンを落とす方法とオフラインマップタイルから現在の位置と座標を取得する方法は?

+0

なぜこの問題のマイナスポイント?あなたが知っていれば教えてください? –

+0

は専門家である人たちは、彼らが愚かなこの質問ので、それらの一つは、あなたのマークが低下していることを見つけます。 – HarshIT

+1

これがうんざりな質問なら、なぜ誰も答えを出せないのですか?同じ –

答えて

0

あなたは文句を言わないMKMapViewを使用して、マップをオフラインで自分の現在位置を取得します。すべてのタスクを実行するにはcloudmadeマップAPIを使用してください。

+0

クラウドマップAPIで素敵な発見=) – henghonglee

0

このコードを実装...

-(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; 
} 

と現在の場所のため....限り私の知識として、uがシミュレータで現在位置を取得することはできません。したがって、1つのオプションは、プロジェクトの.gpxファイルを追加することです。これを追加するには、.gpxで検索します。そのファイルの現在位置を、latとlonに設定します。これは私が知っているものです。私はちょうど同じタスク...幸運を行っている。.. :)

+0

ハローを探して –

+0

あなたのオフラインのmaptilesと、インターネット接続の程度についてもっと詳しく説明する必要があります。もしmapviewが必要でないなら、おそらく自分で座標計算を行う必要があります。 – henghonglee

0

このメソッドは、あなたの選択方法の座標を与え、上記の方法(Gotiの言及)になる所望の位置に注釈を入れることです。

-(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

しかし、マップビューではないオフラインマップタイルがあります。 –

0
 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; 
} 
関連する問題