2015-07-11 16 views
5

में एमकेएसएपशॉट को प्रदर्शित करने के लिए कैसे मैं एमकेएस स्नैपटर का उपयोग करके अपने ऐप में पिन किए गए किसी स्थान के सड़क दृश्य का एक स्नैपशॉट लेने की कोशिश कर रहा हूं। मैं वर्तमान में इस कोड है:स्विफ्ट (आईओएस)

var options: MKMapSnapshotOptions = MKMapSnapshotOptions(); 
    options.region = self.attractionDetailMap.region; 
    options.size = self.attractionDetailMap.frame.size; 
    options.scale = UIScreen.mainScreen().scale; 

    var fileURL:NSURL = NSURL(fileURLWithPath: "path/to/snapshot.png")!; 
    var snapshotter:MKMapSnapshotter = MKMapSnapshotter(); 
    snapshotter.startWithCompletionHandler { (snapshot:MKMapSnapshot!, error:NSError!) -> Void in 
     if(error != nil) { 
      println("error: " + error.localizedDescription); 
      return; 
     } 
     let image:UIImage = snapshot.image; 
     var data:NSData = UIImagePNGRepresentation(image); 
     data.writeToURL(fileURL, atomically: true); 

     var pin:MKAnnotationView = MKAnnotationView(); 
     UIGraphicsBeginImageContextWithOptions(image.size, true, image.scale); 
     image.drawAtPoint(CGPointMake(0.0, 0.0)); 
     var rect:CGRect = CGRectMake(0.0, 0.0, image.size.width, image.size.height); 
     for annotation in self.attractionDetailMap.annotations as! [MKAnnotation]{ 
      var point:CGPoint = snapshot.pointForCoordinate(annotation.coordinate); 
      if(CGRectContainsPoint(rect, point)) { 
       point.x = point.x + pin.centerOffset.x - (pin.bounds.size.width/2.0); 
       point.y = point.y + pin.centerOffset.y - (pin.bounds.size.height/2.0); 
       pin.image.drawAtPoint(point); 
      } 
     } 

     var compositeImage:UIImage = UIGraphicsGetImageFromCurrentImageContext(); 
     var data2:NSData = UIImagePNGRepresentation(compositeImage); 
     data.writeToURL(fileURL, atomically: true); 
     UIGraphicsEndImageContext(); 

अब जब कि मैं छवि है, मैं कैसे वास्तव में मेरे MapView को स्नैपशॉट प्रदर्शित करने के लिए पता नहीं है।

किसी भी मदद की सराहना की जाएगी!

उत्तर

0

तो मैकव्यू स्नैपशॉटर क्लास का उपयोग नक्शादृश्य के अंदर प्रदर्शित करने के लिए नहीं किया जाता है। यह केवल उस मानचित्र की छवि देता है जो मानचित्रदृश्य के साथ संगत नहीं है। मैंने इसका उपयोग तब किया है जब मुझे अतिरिक्त प्रदर्शन की आवश्यकता है जैसे कि टेबलव्यू सेल या संग्रहदृश्य में पिन के साथ नक्शा प्रदर्शित करना। यह तालिकादृश्य के अंदर एक वास्तविक मानचित्रदृश्य प्रदर्शित करने से बेहतर तरीके से प्रदर्शन करता है।

तो एक बार जब आपका स्नैपशॉट हो तो आप इसे UIImageView में लोड कर लेंगे। यह नक्शादृश्य की तरह दिखता है।

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