Как получить статическое изображение с карт google в iOS
Я использую google maps api для iOS. Я хочу получить статическое изображение специального города и вставить его в UIImageView. Как я могу это сделать?
- Как приостановить и возобновить UIView.animateWithDuration
- Получить IndexPath CollectionViewCell вне ячейки
- Как установить NSCalendarUnitMinute repeatInterval в iOS 10 UserNotifications?
- SDWebImage не назначает изображение с url - Загруженное изображение имеет 0 пикселей
- Как использовать селектора Swift 3?
- Как найти файл UTI для файла, с узлом pathExtension, в пути в Swift
- Как отклонить текущий ViewController и перейти к другому представлению в Swift
- UIKeyCommands не работают, когда посредник viewController содержит два viewControllers
ответ @Ankit прав, но @Alexsander спросил в Swift, так что:
var staticMapUrl: String = "http://maps.google.com/maps/api/staticmap?markers=color:blue|\(self.staticData.latitude),\(self.staticData.longitude)&\("zoom=13&size=\(2 * Int(mapFrame.size.width))\(2 * Int(mapFrame.size.height))")&sensor=true" var mapUrl: NSURL = NSURL(string: staticMapUrl.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding))! var image: UIImage = UIImage.imageWithData(NSData.dataWithContentsOfURL(mapUrl)) var mapImage: UIImageView = UIImageView(frame: mapFrame)
NSString *staticMapUrl = [NSString stringWithFormat:@"http://maps.google.com/maps/api/staticmap?markers=color:blue|%@,%@&%@&sensor=true",self.staticData.latitude, self.staticData.longitude, [NSString stringWithFormat:@"zoom=13&size=%dx%d",2*(int)mapFrame.size.width, 2*(int)mapFrame.size.height]]; NSURL *mapUrl = [NSURL URLWithString:[staticMapUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:mapUrl]]; UIImageView *mapImage = [[UIImageView alloc] initWithFrame:mapFrame];
Это должно помочь.
Swift 3 => let Width = 100 let Height = 200 let mapImageUrl = "https://maps.googleapis.com/maps/api/staticmap?center=" let latlong = "18.495651759752, 73.809987567365" let mapUrl = mapImageUrl + latlong let size = "&size=" + "\(Int(Width))" + "x" + "\(Int(Height))" let positionOnMap = "&markers=size:mid|color:red|" + latlong let staticImageUrl = mapUrl + size + positionOnMap if let urlStr : NSString = staticImageUrl.addingPercentEscapes(using:String.Encoding.utf8)! as NSString{ // setImageFromURL }
Использование Swift 3:
let lat = .. let long = .. let staticMapUrl: String = "http://maps.google.com/maps/api/staticmap?markers=color:red|\(lat),\(long)&\("zoom=13&size=\(2 * Int(cell.imgAddress.frame.size.width))x\(2 * Int(cell.imgAddress.frame.size.height))")&sensor=true" let url = URL(string: staticMapUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!) do { let data = try NSData(contentsOf: url!, options: NSData.ReadingOptions()) cell.imgAddress.image = UIImage(data: data as Data) } catch { cell.imgAddress.image = UIImage() }