Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How put Google MapView in UIView?

I'm trying to put Google MapView in UIView but I get nothing displayed.

My code,

*.h

#import <UIKit/UIKit.h>
#import <GoogleMaps/GoogleMaps.h>

@interface ViewController : UIViewController

@property (weak, nonatomic) IBOutlet UIBarButtonItem *btnLocate;
@property (weak, nonatomic) IBOutlet GMSMapView *mapView_;
@property (weak, nonatomic) IBOutlet UIView *mapView;

@end

*.m

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                            longitude:151.20
                                                                 zoom:6];
    self.mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];
    self.mapView_.myLocationEnabled = YES;
    self.mapView = self.mapView_;

Thanks.

Solution

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                            longitude:151.20
                                                                 zoom:6];

    // Indicating the map frame bounds
    self.mapView_ = [GMSMapView mapWithFrame:self.mapView.bounds camera: camera]; 
    self.mapView_.myLocationEnabled = YES;

    // Add as subview the mapview
    [self.mapView addSubview: self.mapView_]; 

So, i got the solution. Thanks anyway.

Best regards.

like image 789
SamYan Avatar asked Oct 04 '13 09:10

SamYan


People also ask

What is GMSMapView?

This is the main class of the Google Maps SDK for iOS and is the entry point for all methods related to the map. The map should be instantiated via the convenience constructor [GMSMapView mapWithFrame:camera:].


2 Answers

Solution:

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                            longitude:151.20
                                                                 zoom:6];

    // Indicating the map frame bounds
    self.mapView_ = [GMSMapView mapWithFrame:self.mapView.bounds camera: camera]; 
    self.mapView_.myLocationEnabled = YES;

    // Add as subview the mapview
    [self.mapView addSubview: self.mapView_]; 
like image 142
SamYan Avatar answered Nov 15 '22 20:11

SamYan


Essentially in the storyboard, for the corresponding View(UIVIew) you're going to show the Google Map, you have to set the class as GMSMapView in identity inspector.

This is how view controller would look like in Swift 3.

class GMapsViewController: UIViewController {
    @IBOutlet weak var mapContainerView: GMSMapView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0)

       let marker = GMSMarker()
       marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
       marker.title = "Sydney"
       marker.map = mapContainerView

       mapContainerView.moveCamera(GMSCameraUpdate.setCamera(camera))


       }
}
like image 32
Hashan Seneviratne Avatar answered Nov 15 '22 18:11

Hashan Seneviratne