坐标,我的位置和标记没有出现在地图中

时间:2013-04-10 17:05:32

标签: google-maps-sdk-ios

我一直在与谷歌地图ios sdk争夺几个小时,而且我有一个问题,我无法解决。所以这是正在发生的事情:

我在界面构建器中有一个视图控制器,它有.m和.h implmentation。视图控制器有一个视图,在该视图中有另一个视图,它是保存地图的on,所以在自定义类的身份检查器中它被设置为GMSMapView。

这个视图有.h实现的出口,它叫做mapView。在.m上我有以下代码:

  • (无效)viewDidLoad中

{

[super viewDidLoad];

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:10.49101

 longitude:-66.902061

 zoom:4];

 self.mapView = [GMSMapView mapWithFrame:[self.mapView bounds] camera:camera];

 self.mapView.myLocationEnabled = YES;



 GMSMarkerOptions *options = [[GMSMarkerOptions alloc] init];

 options.position = CLLocationCoordinate2DMake(-33.8683, 151.2086);

 options.title = @"Sydney";

 options.snippet = @"Australia";

 [self.mapView addMarkerWithOptions:options];

}

正如您所看到的,我创建了相机,然后是具有界面构建器(mapView)上视图边界的地图。现在这是不起作用的:

1)无论我输入什么坐标,地图总是在英格兰开始,我相信(0,0)坐标 2)我的位置没有出现 3)标记也没有出现。 4)重要提示:地图正在出现,但总是在英格兰上空。

老实说我不知道​​发生了什么,我相信它与 - (void)viewDidLoad有关 因为如果我使用google提供的代码在loadView方法上编写代码就行了,但是这样做的问题是你无法访问我在界面构建器上创建的视图。

非常感谢!

1 个答案:

答案 0 :(得分:0)

所以我找到了问题的答案,没有在界面构建器中使用视图,所有都是以编程方式提供的。这是解决方案:

- (无效)viewDidLoad中{     [super viewDidLoad];

mapView = [[GMSMapView alloc] initWithFrame:CGRectZero];

[mapView setFrame:CGRectMake(0, 0, 400, 400)];  ////here you will have to specify the bounds of the view through CGRectMake

 GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:10.49101

                                                         longitude:-66.902061

                                                              zoom:4];

 [mapView setCamera:camera];

 mapView.myLocationEnabled = YES;


 GMSMarkerOptions *options = [[GMSMarkerOptions alloc] init];

 options.position = CLLocationCoordinate2DMake(-33.8683, 151.2086);

 options.title = @"Sydney";

 options.snippet = @"Australia";

 [mapView addMarkerWithOptions:options];

 [self.view addSubview:mapView];

 [self.view sendSubviewToBack:mapView]; // just in case you need to send the map to the back, I do

}