Папярэдні прагляд карты

Як я магу зрабіць значок папярэдняга прагляду, як у дадатку iPhone на карце?

Скрыншот http://img835.imageshack.us/img835/1619/img0016x.png</а>

Ці ёсць функцыя для гэтага?

2
Што ты маеш на ўвазе? Закругленыя куты? Border? Карта і пін-код?
дададзена аўтар Eimantas, крыніца
Дзякуй усім за вашу дапамогу. Я толькі што даведаўся, што кампанія Apple прадастаўляе код у іх выбарцы GeocoderDemo ад кампаніі Apple у GeocoderDemo/PlacemarkViewController.m ў функцыі cellForMapView (MKMapView)
дададзена аўтар Thomas T, крыніца

2 адказы

У 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 Google Static Maps (апісана ніжэй).
  • Стварэнне MKMapView і зрабіць яго да выявы. Я паспрабаваў гэта (глядзіце папярэдні рэдагаваць), але не можа атрымаць пліткі для загрузкі. Я спрабавала датэлефанавацца needsLayout і іншыя метады, але не працуе.

Apple's deal with Google is more reliable than a free API, but on the bright side, it is really simple. Documentation is at http://code.google.com/apis/maps/documentation/staticmaps/

This is the minimum amount of parameters for practical use: http://maps.googleapis.com/maps/api/staticmap?center=40.416878,-3.703530&zoom=15&size=290x179&sensor=false

Кароткае апісанне параметраў:

  • center: this can be an address, or a latitude,longitude pair with up to 6 decimals (more than 6 are ignored).
  • format: png8 (default), png24, git, jpg, jpg-baseline.
  • language: Use any language. Default will be used if requested wasn't available.
  • maptype: One of the following: roadmap, satellite, hybrid, terrain.
  • scale: 1,2,4. Use 2 to return twice the amount of pixels on retina displays. 4 is restricted to premium customers. Non paid resolution limits are 640x640 for 1 and 2.
  • sensor: true or false. Mandatory. It indicates if the user is being located using a device.
  • size: size in pixels.
  • zoom: 0 (whole planet) to 21.

Існуе некалькі больш, каб дадаць шматкутнікі, прыстасаваныя маркеры і стыль карты.

  NSData* data = [NSData dataWithContentsOfURL:@"http://maps.googleap..."];
  UIImage *img = [UIImage imageWithData:data];
4
дададзена
На жаль, калі я паспрабаваў мой адказ карта вярнулася з пустымі пліткамі. Я мяркую, што некаторыя адладкі будзе знайсці трук, але зараз я прытрымліваюся Мэт саветы.
дададзена аўтар Jano, крыніца
дзякуй! Я паклаў яго ў дадатковым паданні (addSubview) і дадаў #import
дададзена аўтар Thomas T, крыніца
я ўсё яшчэ выкарыстоўваю код ад старога (неізмененном) адказу
дададзена аўтар Thomas T, крыніца

Вы можаце выкарыстоўваць Google Maps API статычных для фармавання малюнка замест загрузкі ўсяго UIMapView .

2
дададзена