【问题标题】:How to put Google Map in a custom UIView如何将谷歌地图放入自定义 UIView
【发布时间】:2015-09-26 14:34:35
【问题描述】:

我知道这个问题之前已经被问过,但没有一个答案对我来说真的很清楚,我在互联网上找不到好的教程......所以,我想把谷歌地图放在不同的 UIView 中主要是为了能够在顶部显示我的菜单栏。

这是我的实际代码:

#import "MapViewController.h"
#import <GoogleMaps/GoogleMaps.h>

@implementation MapViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:46.809885
                                                            longitude:-71.184556
                                                                 zoom:18];
    mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
    self.view = mapView;
    mapView.mapType = kGMSTypeHybrid;

}

@end

实际上,地图遍布整个应用程序。它已经将我的 UIView 的类设置为 GMSKMapView 并创建了一个插座名称 mapView 以将我的 UIView 与控制器链接。

我使用 Xcode 4.6.2

感谢您的帮助!

【问题讨论】:

    标签: xcode google-maps uiview


    【解决方案1】:

    我正在使用此代码:

    //头文件

    @property (strong, nonatomic) IBOutlet UIView *viewForMap;
    @property (nonatomic, strong) IBOutlet GMSMapView *mapView;
    @property (nonatomic, strong) IBOutlet GMSCameraPosition *camera;
    

    //实现文件

     self.camera = [GMSCameraPosition cameraWithLatitude:46.2220
                                              longitude:25.2330 zoom:5
                                                bearing:0
                                           viewingAngle:0
                   ];
    
        self.mapView = [GMSMapView mapWithFrame:_viewForMap.bounds camera:_camera];
        self.mapView.delegate = self;
    
        [self.viewForMap addSubview:_mapView];
    

    UPD

    改变地图类型:

    self.mapView.mapType = kGMSTypeHybrid; //kGMSTypeNormal kGMSTypeHybrid kGMSTypeSatellite kGMSTypeTerrain
    

    再次更改相机视图:

    _mapView.camera = [GMSCameraPosition cameraWithLatitude:newLat
                                                      longitude:newLong
                                                           zoom:1
                                                        bearing:0
                                                   viewingAngle:0
                           ];
    

    不要忘记添加头文件:

    <GMSMapViewDelegate>
    

    【讨论】:

    • 它可以工作,但我无法设置地图类型、坐标和缩放。该地图始终在地图类型视图中显示欧洲,并且根本没有缩放...任何想法为什么它不起作用?
    • 什么?!更改相机以获取其他坐标、其他缩放级别等
    • 很高兴为您提供帮助...继续付款! :)
    【解决方案2】:

    首先创建 UIView 的 outlet

    #import <GoogleMapsM4B/GoogleMaps.h>
    @interface ViewController : UIViewController<GMSMapViewDelegate>
    @property (strong, nonatomic) IBOutlet GMSMapView *mapView;
    

    将此添加到 .h 文件中

    现在在 .m 文件中的 view didload 方法中添加这个

    self.mapView.myLocationEnabled = YES;
    self.mapView.mapType = kGMSTypeNormal;
    self.mapView.settings.compassButton = YES;
    self.mapView.settings.myLocationButton = YES;
    self.mapView.delegate = self;
    

    【讨论】:

      猜你喜欢
      • 2019-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-21
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 2015-05-05
      相关资源
      最近更新 更多