2016-09-16 42 views
0

如果我使用MapView,並且想要將視圖轉換爲每個角都是地圖點的圖像(由地圖縮放默認值),我怎麼能做到這一點? (不要求代碼,只是某個方向)。我不想保存圖像,只需將圖像矩陣在計算機視覺中使用,都可以在同一個程序中快速而動態地使用。我不能依靠截圖。如何將地圖的特定部分快速轉換爲圖像?

希望這可以幫助別人 - 真的看到處處都是,但沒有運氣。

乾杯

+1

你可以使用'MKMapSnapshotter' – dan

+0

哇。驚人。聽起來很完美。它如何輸出? –

+1

它爲您提供了'MKMapSnapshot'對象,它是'UIImage'的一個包裝,具有一些額外的功能,可以在圖像中的緯度/經度座標和點之間進行轉換。 – dan

回答

3

MKMapSnapshotter是你在找什麼。這裏是斯威夫特的例子:

let options = MKMapSnapshotOptions() 
options.region = mapView.region 
options.size = mapView.frame.size 
options.scale = UIScreen.mainScreen().scale 

let fileURL = NSURL(fileURLWithPath: "path/to/snapshot.png") 

let snapshotter = MKMapSnapshotter(options: options) 
snapshotter.startWithCompletionHandler { snapshot, error in 
    guard let snapshot = snapshot else { 
     print("Snapshot error: \(error)") 
     return 
    } 

    let data = UIImagePNGRepresentation(snapshot.image) 
    data?.writeToURL(fileURL, atomically: true) 
} 

如果您有興趣閱讀更多關於MKMapSnapshotter退房this NSHipster崗位。在這篇文章中,有一個如何在圖像上繪製註釋的例子,我之前在應用程序中使用過該註釋,並且效果很好。

希望有幫助!