2009-09-29 23 views
6

Có thể có hình ảnh riêng của chúng tôi thay vì pin mặc định trong bản đồ MapKit trên iPhone không?Hình ảnh thay vì một pin mặc định trong khung công tác MapKit của iPhone?

Tôi đang làm việc trên một ứng dụng sẽ hiển thị vị trí của bạn bè giống Google Latitude và cần hiển thị hình ảnh của bạn bè tại vị trí của họ.

Có thể sử dụng Bản đồ Google JavaScript nhưng tôi muốn biết liệu ai đó có thể cung cấp một số mã mẫu cho bản đồ dựa trên MapKit hay không.

Trả lời

14

Có thể thực hiện được. Vì vậy, bạn phải sử dụng MKAnnotationView thay vì MKPinAnnotationView. và không sử dụng thuộc tính annotation.animatesDrop.

Dưới đây là đoạn code mẫu mà bạn có thể sử dụng trong viewForAnnotation,

annotation = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"try"]; 
    annotation.canShowCallout = YES; 

    annotation.image = [UIImage imageNamed:@"image.png"]; 


    return annotation; 
+0

Cảm ơn. Nó đã làm các trick. Không thể tin rằng tôi cudnt tìm ra một thủ thuật đơn giản như vậy. –

2

Bạn cũng có thể thiết lập các khung của hình ảnh. Đối với điều đó trong mã trên, chúng ta phải thực hiện những thay đổi đơn giản này.

UIImage *pinImage = [UIImage imageNamed:@"image.png"]; 

UIImageView *imageView = [[[UIImageView alloc] initWithImage:pinImage] autorelease]; 

     imageView.frame = CGRectMake(-20, 0, 40, 30); 

[annotation addSubview:imageView]; 

Và chúng ta phải nhận xét dòng

// annotation.image = [UIImage imageNamed:@"image.png"]; 
0

Bằng việc sử dụng tài sản khoảng bạn có thể dễ dàng phóng to để bạn yêu cầu

MKCoordinateSpan tuổi;

MKCoordinateRegion region; 


mapView.scrollEnabled=YES; 
span.latitudeDelta = 100.0;//more value you set your zoom level will increase 
span.longitudeDelta =100.0;//more value you set your zoom level will increase 
mapView.showsUserLocation=YES; 
region.span = span; 


region.center = from.coordinate; 
    [mapView setRegion:region animated:YES]; 
[mapView regionThatFits:region]; 
[mapView addAnnotation:from]; 
Các vấn đề liên quan