2012-02-16 6 views
0

注釈から開示ボタンをクリックすると、情報と表示されます。この画面では、左上隅に、現在の場所のスナップショットである小さな画像があります。誰かがマップからスナップショットを取得して情報画面に表示する方法を知っていますか 私が話していることを簡単に知ることができるように画像があります。 すべての回答が歓迎されています。 enter image description here注釈から開示をクリックした後、現在の地図のスナップショットを表示する方法

答えて

0

あなたはCoreGraphicsを使って地図を画像に描画したいと思っています。

if (UIGraphicsBeginImageContextWithOptions != NULL) { 
    UIGraphicsBeginImageContextWithOptions(frameYouWantToCopy.size, NO, 0.0); 
} 
else { 
    UIGraphicsBeginImageContext(frameYouWantToCopy.size); 
} 
[mapView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *result = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

return result; 
+0

感謝を掲示しています。今すぐそれに取り組む。 – tranvutuan

+0

私は試してみましたが、画像のサイズが良い形ではありません。私がやったことは、** UIGraphicsBeginImageContextWithOptions(CGSizeMake(32,32)、NO、0.0); ** – tranvutuan

+0

私は試してみましたが、画像のサイズは良い形状ではありません。長さは高さの2倍であり、注釈を表示していませんその上に...私がしたのは* UIGraphicsBeginImageContextWithOptions(CGSizeMake(32,32)、NO、0.0); * ...残りはあなたのコメントと同じです。 – tranvutuan

0

あなたがちょうど中央にマップを設定する情報ボタンをクリックしたときに、私はこの時点 に解決策を持っています。そこから画像を取る これまで行ってきたことは、 が1つの画像mapImageview in.hを取り込んで、その画像ビューを注釈の画像を保存するために使用しました 最初に を落とした点の座標を覚えておいてください私はあなたが今uptillが、他の揺れのために答えを得る知っている機能

-(void)setMaptocentre:(double)lat (double)long 
{ 
    MKCoordinateRegion region; 
    region.center.latitude=lat; 
    region.center.longitude=long; 

    MKCoordinateSpan span; 
    span.latitudeDelta=10; 
    span.longitudeDelta=10; 
    region.span =span; 
    [MapView setRegion:region animated:YES]; 
} 

-(IBAction)infoPressed:(id)sender 
{ 
    [self setMaptocentre: rememberedLat rememberdLong]; 
    //here the rememberedlat and rememberedLong are the latitude and longitude you have 
    // saved at the time of pin drop. the function brings the pin to centre of map 
    // and then does the following part to take the image, where it includes the pin 

    UIGraphicsBeginImageContext(CGRectMake(150, 200, 100, 100).size); 
    CGContextRef c = UIGraphicsGetCurrentContext(); 
    CGContextTranslateCTM(c,-105, -130); 
    [self.view.layer renderInContext:c]; 
    UIImage* viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    NSData *imageData = UIImagePNGRepresentation(viewImage); 
    mapImageview.image = [UIImage imageWithData:imageData]; 
} 

を呼び出すことによって領域が、私はここに おかげで、あなたのコメントを

関連する問題