2011-03-30 4 views
5

पर एक छवि जोड़ें क्या यह संभव है?MKPointAnotation

मैं यहां एक क्रिया कर रहा हूं जो मुझे एक पिन देता है। लेकिन मुझे एक छवि चाहिए। और एमकेएनोटेशन मेरे लिए जटिल लगता है।

 - (void)abreMapa:(NSString *)endereco { 

      NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv", 
            [endereco stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
      NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString]]; 
      NSArray *listItems = [locationString componentsSeparatedByString:@","]; 

      double latitude = 0.0; 
      double longitude = 0.0; 

      if([listItems count] >= 4 && [[listItems objectAtIndex:0] isEqualToString:@"200"]) { 
       latitude = [[listItems objectAtIndex:2] doubleValue]; 
       longitude = [[listItems objectAtIndex:3] doubleValue]; 
      } 
      else { 
       //Show error 
      } 

      CLLocationCoordinate2D coordinate; 
      coordinate.latitude = latitude; 
      coordinate.longitude = longitude; 
      myMap.region = MKCoordinateRegionMakeWithDistance(coordinate, 2000, 2000); 



      MKPointAnnotation *annotation = [[MKPointAnnotation alloc] init]; 
      [annotation setCoordinate:coordinate]; 
      [annotation setTitle:@"Some Title"]; 
      [myMap addAnnotation:annotation]; 




      // Coloca o icone 
      [self.view addSubview:mapa]; 


     } 

धन्यवाद!

उत्तर

22

लागू

- (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation 

यहाँ नमूना कोड, MapCallouts नमूना एप्पल के डेवलपर साइट पर उपलब्ध कराई कोड से चोरी हो जाने पर आपको एक MKMapViewDelegate स्थापित करने के लिए की आवश्यकता होगी, और। मैंने महत्वपूर्ण विवरणों पर ध्यान केंद्रित करने के लिए इसे संशोधित किया है। आप नीचे देख सकते हैं कि कुंजी को एनोटेशन व्यू पर छवि सेट करना है, और इस विधि से उस एनोटेशन व्यू को वापस करना है।

- (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation 
{ 
     static NSString *SFAnnotationIdentifier = @"SFAnnotationIdentifier"; 
     MKPinAnnotationView *pinView = 
      (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:SFAnnotationIdentifier]; 
     if (!pinView) 
     { 
      MKAnnotationView *annotationView = [[[MKAnnotationView alloc] initWithAnnotation:annotation 
                      reuseIdentifier:SFAnnotationIdentifier] autorelease]; 
      UIImage *flagImage = [UIImage imageNamed:@"flag.png"]; 
      // You may need to resize the image here. 
      annotationView.image = flagImage; 
      return annotationView; 
     } 
     else 
     { 
      pinView.annotation = annotation; 
     } 
     return pinView; 
} 

हम dequeueReusableAnnotationViewWithIdentifier का उपयोग एक पहले से ही बनाए गए दृश्य हड़पने के लिए हमारे एनोटेशन विचारों का पुन: उपयोग करने के लिए। अगर कोई वापस नहीं लौटाया जाता है तो हम एक नया बनाते हैं। यह हमें सैकड़ों एमकेएनोटेशन व्यू बनाने से रोकता है अगर एक ही समय में केवल कुछ ही नजर में आते हैं।

+0

यह MKMapViewDelegate मेरे लिए प्रकट नहीं होता है। –

+0

http://developer.apple.com/library/ios/#documentation/MapKit/Reference/MKMapViewDelegate_Protocol/MKMapViewDelegate/MKMapViewDelegate.html। आप शायद एमकेमैप व्यू की प्रतिनिधि संपत्ति को इसे प्रबंधित नियंत्रक को सेट करेंगे। –

+0

क्या कोई नमूना फ़ाइल है, सरल, एप्पल नहीं, जो मुझे दिखा सकता है कि इस सरल को कैसे कार्यान्वित किया जाए? –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^