IOS谷歌地图相机没有指向标记

时间:2014-06-05 11:18:16

标签: ios google-maps marker google-maps-sdk-ios

我在故事板上有一个视图控制器,我想在其上显示谷歌地图

一切顺利,我得到了,我可以显示地图

我的问题是相机没有指向标记

这是我的代码

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSLog(@"we are in the show stadium");
    // Create a GMSCameraPosition that tells the map to display the
    // coordinate -33.86,151.20 at zoom level 6.
    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                            longitude:151.20
                                                                 zoom:6];
    mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];
    mapView_.myLocationEnabled = YES;
    self.mynewmap = mapView_;

    // Creates a marker in the center of the map.
    GMSMarker *marker = [[GMSMarker alloc] init];
    marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
    marker.title = @"Sydney";
    marker.snippet = @"Australia";
    marker.map = mapView_;
}

其中mynewmap是UIView商店

这是我看到的

enter image description here

标记位于austrail上,但相机没有指向它并且标记不在地图上

4 个答案:

答案 0 :(得分:2)

如果您正在使用Storyboards,请在Interface Builder中将mynewmap的类设置为GMSMapView。

在viewDidLoad中添加相机,你不需要分配视图,因为它已经被分配了:

- (void)viewDidLoad
{
    [super viewDidLoad];
    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                        longitude:151.20
                                                             zoom:6];


    self.mynewmap.camera = camera;
}

或者尝试不使用Zero rect创建视图.CGRectZero ...您可以尝试使用:

mapView_ = [GMSMapView mapWithFrame:self.mynewmap.frame camera:camera];

答案 1 :(得分:0)

您当前的位置& (-33.86,151.20)位置相同但是没有...您已启用用户位置模式。请在评论后再试一次

 //mapView_.myLocationEnabled = YES;

删除此行...因为它还跟踪用户位置。可能会有所帮助。

答案 2 :(得分:0)

添加标记

后添加此行
[mapView_ animateToLocation:marker.position];

或使用

[mapView_ animateToCameraPosition:[GMSCameraPosition cameraWithLatitude:marker.position.latitude
                                                                      longitude:marker.position.longitude
                                                                           zoom:6.0f]];

答案 3 :(得分:0)

在iOS 11中遇到相同的问题,而不是从情节提要中设置GMSMapView,而是在viewcontroller的viewDidLoad方法中将其初始化,如下所示:

override func viewDidLoad() {
    super.viewDidLoad()

    // Force the view to layout to get its proper frame
    self.view.setNeedsLayout()
    self.view.layoutIfNeeded()
    // Initialize the GMSMapView with target view's bounds
    googleMapView = GMSMapView(frame: self.mapView.bounds)
    // Add the GMSMapView to the map container view
    self.mapView.addSubview(googleMapView)
}