Google地图SDK无法在UIView中正确显示?

我有一些问题在Xcode 6.1中显示谷歌地图

我设法让地图显示在我的UIView的一部分,但它显示世界地图,而不是在特定的坐标。

这是问题:

在这里输入图像说明

。H:

@interface MapViewController : UIViewController @property (strong, nonatomic) IBOutlet UIView *googleMapView; - (IBAction)mapToMain:(UIButton *)sender; @end 

.M:

 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude: 32.915134 longitude: -117.140269 zoom: 17]; GMSMapView *mapView = [GMSMapView mapWithFrame:self.googleMapView.bounds camera:camera]; mapView.myLocationEnabled = YES; self.googleMapView = mapView; GMSMarker *marker = [ [GMSMarker alloc] init]; marker.position = CLLocationCoordinate2DMake(32.915134, -117.140269); marker.title = @"Tet Festival 2015"; marker.snippet = @"VAYA Tet"; marker.map = mapView; } 

我在这里看到了一些build议,但是没有成功:

不能把谷歌地图GMSMapView在主要视图的子视图?

在主视图以外的视图中使用Google地图SDK

有什么build议么?

你必须添加一个UIView到你的故事板…但之后,你必须把这个简单的UIView成一个GMSMapView! select你刚才添加的视图,通过selectUtilities工具栏左边的第三个选项卡,将视图的类名从UIView更改为GMSMapView,打开Identity Inspector,如下面的屏幕截图所示:

在这里输入图像说明

你的Outlet不会是这样的

 @property (strong, nonatomic) IBOutlet UIView *googleMapView; 

它会是这样的

 @property (strong, nonatomic) IBOutlet GMSMapView *mapView; 

你的ViewDidLoad可以是这样的:

  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude: 32.915134 longitude: -117.140269 zoom: 17]; [self.mapView animateToCameraPosition:camera]; GMSMarker *marker = [ [GMSMarker alloc] init]; marker.position = CLLocationCoordinate2DMake(32.915134, -117.140269); marker.title = @"Tet Festival 2015"; marker.snippet = @"VAYA Tet"; marker.map = self.mapView; 

UPDATE

在这里你有一个示例项目 (插入你的密钥)

最后算出来了…

删除:

 self.googleMapView = mapView; 

取代:

 [self.googleMapView addSubview:mapView]; 

我不确定上面的代码有什么问题。 对我来说看起来很好。 但要将相机移动到某个位置。 您也可以在那里为相机制作animation。

 var newLocation = CLLocationCoordinate2DMake(latitude, longitude) googleMapView.animateToLocation(newLocation) 

希望它适合你。