0

我正在尝试使用在子视图中实现我当前的位置Google Map SDK for IOS。我正在尝试将 GMSMapView 实现为 IBOutlet。

我的头文件有代码

 #import <UIKit/UIKit.h>
 #import <Google-Maps-iOS-SDK/GoogleMaps/GoogleMaps.h>

 @interface TripLandingViewController : UIViewController

 @property IBOutlet GMSMapView *mapView;

 @end

我的 .m 文件有代码

    self.view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"Tile.png"]];
    self.mapView.myLocationEnabled = TRUE;



    NSLog(@"\n\n\n My Location is %f,%f \n\n\n",self.mapView.myLocation.coordinate.latitude,self.mapView.myLocation.coordinate.longitude);

    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:self.mapView.myLocation.coordinate.latitude
                                                           longitude:self.mapView.myLocation.coordinate.longitude
                                                             zoom:10];
    self.mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];

无论如何,我提供什么硬编码值作为相机坐标的参数。我得到了错误的位置(这里是英国),根本没有更新。

但是当我尝试时

    self.View = [GMSMapView mapWithFrame:CGRectZero camera:camera];

我能够在主视图中使用正确的位置坐标加载正确的地图视图。

我尝试了通过stackoverflow将Google Map添加到SubViews的所有答案。

不能将谷歌地图 GMSMapView 放在主视图的子视图中?

如何为地图视图设置框架 - 在 iOS6 的谷歌 GMSMap 中

如何将 Google MapView 放入 UIView?

Google Maps iOS SDK,获取用户的当前位置

但似乎没有任何效果。请帮助,因为我是 IOS 编程的新手。

4

1 回答 1

2

利用:

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:0 longitude:0 zoom:15];
 self.mapView.camera = camera;

而不是使用:

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

我不完全确定为什么,但是当您GMSMapView是您的子视图时,此方法有效UIViewController

于 2014-05-25T21:33:22.993 回答