如何在iPhone地圖應用程序中製作預覽圖標?地圖的預覽圖像
Screenshot http://img835.imageshack.us/img835/1619/img0016x.png
是否有這樣的功能?
如何在iPhone地圖應用程序中製作預覽圖標?地圖的預覽圖像
Screenshot http://img835.imageshack.us/img835/1619/img0016x.png
是否有這樣的功能?
在iOS 7中使用MKMap Snapshotter。從NSHipster:
MKMapSnapshotOptions *options = [[MKMapSnapshotOptions alloc] init];
options.region = self.mapView.region;
options.size = self.mapView.frame.size;
options.scale = [[UIScreen mainScreen] scale];
NSURL *fileURL = [NSURL fileURLWithPath:@"path/to/snapshot.png"];
MKMapSnapshotter *snapshotter = [[MKMapSnapshotter alloc] initWithOptions:options];
[snapshotter startWithCompletionHandler:^(MKMapSnapshot *snapshot, NSError *error) {
if (error) {
NSLog(@"[Error] %@", error);
return;
}
UIImage *image = snapshot.image;
NSData *data = UIImagePNGRepresentation(image);
[data writeToURL:fileURL atomically:YES];
}];
iOS7之前,請執行下列操作之一:
蘋果與谷歌的交易比一個免費的API更可靠,但在光明方面,它非常簡單。文檔是在http://code.google.com/apis/maps/documentation/staticmaps/
這對於實際使用的參數的最小量: http://maps.googleapis.com/maps/api/staticmap?center=40.416878,-3.703530&zoom=15&size=290x179&sensor=false
參數的總結:
center
:這可以是一個地址,或緯度,經度配對最多6位小數(忽略6個以上)。format
:png8(默認),png24,git,jpg,jpg-baseline。language
:使用任何語言。如果請求不可用,將使用默認值。maptype
:以下之一:路線圖,衛星,混合,地形。scale
:1,2,4。使用2返回兩倍於視網膜顯示器上的像素數量。 4僅限於高級客戶。 對於1和2,非付費分辨率限制爲640x640。sensor
:對或錯。強制性。它指示用戶是否正在使用設備進行定位。size
:以像素爲單位的大小。zoom
:0(整個地球)至21有一些更多的補充的多邊形,自定義標記和樣式的地圖。
NSData* data = [NSData dataWithContentsOfURL:@"http://maps.googleap..."];
UIImage *img = [UIImage imageWithData:data];
,謝謝!我把它放在一個額外的視圖(addSubview)中,並添加了#import
可悲的是,當我嘗試我的答案時,地圖回來了空白的瓷磚。我想一些調試會找到訣竅,但現在我正在關注Matt的建議。 – Jano
我仍在使用舊(未編輯)答案中的代碼 –
您可以使用Google Maps Static API生成而不是加載整個UIMapView
的圖像。
你是什麼意思?圓角?邊境?地圖和pin? – Eimantas
謝謝大家的幫助。我剛剛發現,蘋果在GeocoderDemo/PlacemarkViewController.m中的Apple GeocoderDemo示例代碼中提供了函數cellForMapView(MKMapView) –