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)
希望它适合你。