2014-10-15 32 views
6

Bir görüntüyü bir IOS haritasında SWIFT kullanarak nasıl bindireceğinizi bulmaya çalışıyorum. Harita kiti kullanarak bir harita üzerinde yeşil bir daireyi kapsayan aşağıdaki kodu oluşturdum. Yeşil çemberi dikdörtgen görüntü ile değiştirmek istiyorum tOver.png 500,500 iOS geliştirmede yeniyim ve hızlıyım. Şimdiye kadar hızlı bir örnek veya iyi bir kaynak bulamıyorum.Bir IOS haritasında görüntüyü üst üste bindirme

// 
// ViewController.swift 
// mapoverlaytest 
// 

import UIKit 
import MapKit 


class ViewController: UIViewController,MKMapViewDelegate { 
    @IBOutlet weak var mapView: MKMapView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.mapView.delegate = self; 
     let location = CLLocationCoordinate2D(
      latitude: 51.50007773, 
      longitude: -0.1246402 
     ) 

     let span = MKCoordinateSpanMake(0.05, 0.05) 
     let region = MKCoordinateRegion(center: location, span: span) 

     mapView.setRegion(region, animated: true) 

     let annotation = MKPointAnnotation() 
     annotation.setCoordinate(location) 
     annotation.title = "Big Ben" 
     annotation.subtitle = "London" 



     var overlay = MKCircle (centerCoordinate: location, radius: 500) 

     mapView.addOverlay(overlay) 

     mapView.addAnnotation(annotation) 

    } 

    func mapView(
     mapView: MKMapView!, rendererForOverlay 
     overlay: MKOverlay!) -> MKOverlayRenderer! { 
      if (overlay.isKindOfClass(MKCircle)) 
      { 
       var circleRenderer = MKCircleRenderer(overlay: overlay) 
       circleRenderer.strokeColor = UIColor.greenColor() 
       circleRenderer.fillColor = UIColor(
        red: 0, 
        green: 1.0, 
        blue: 0, 
        alpha: 0.5) 

       return circleRenderer 
      } 
      return nil 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

} 

cevap

3

Totem'in açıkladığı gibi, amaçlarınız için çalışıyorsa, bir yer paylaşımı yerine bir görüntü açıklaması kullanmak daha kolay olurdu. Bununla birlikte, bu resmi ne kullanmak istediğinize bağlı olarak çalışmayabilir. Harita bindirmeleri ve harita ek açıklamaları arasındaki ana fark, haritayı yakınlaştırdığınızda (bir pim gibi) ek açıklamaların aynı boyutta kalması ve bindirmelerin haritanın boyutuyla (bir binayı işaretlemek gibi) değişmesidir. Resminizin harita ile yakınlaştırılmasını istiyorsanız, biraz daha karmaşıklaşır.

Görüntünüzü çizmek için yeni bir MKOverlayRenderer alt sınıfı oluşturmak isteyeceksiniz. DrawMapRect (mapRect, zoomScale, inContext) işlevini alt sınıflara ayırarak görüntüyü görüntü bağlamında çizmeniz gerekir. Bu alt sınıfı yaptıktan sonra, özel alt sınıfınızı MKCircleRenderer yerine kullanabilirsiniz ve gitmek için iyi olmalısınız.

Raywenderlich.com numaralı telefondan çok güzel bir inceleme çıkarken mutlaka kontrol etmelisiniz. Bilmeniz gereken her şeyde size eşlik etmeli.

İlgili konular