【问题标题】:I can't see map after adding google map sdk for ios添加 google map sdk for ios 后我看不到地图
【发布时间】:2014-06-13 23:51:00
【问题描述】:

我想在 UIViewController 上方添加一个谷歌地图。但除了我定义的一些标记外,我什么都看不到。问题看起来像这样: 这是相关代码:

- (void)viewDidLoad {
previousContext = [EAGLContext currentContext];
[super viewDidLoad];


GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.868
                                                        longitude:151.2086
                                                             zoom:10];

mapView_ = [GMSMapView mapWithFrame:CGRectMake(0, 0, 1136, 640) camera:camera];
//mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView_.settings.compassButton = YES;
mapView_.settings.myLocationButton = YES;
mapView_.delegate = self;
// Listen to the myLocation property of GMSMapView.
[mapView_ addObserver:self
           forKeyPath:@"myLocation"
              options:NSKeyValueObservingOptionNew
              context:NULL];

[EAGLContext setCurrentContext: previousContext];

//add makers
CLLocationCoordinate2D position = CLLocationCoordinate2DMake(39.900285, 116.274020);
GMSMarker *marker = [GMSMarker markerWithPosition:position];
marker.title = @"aaa";
marker.snippet = @"population : 5";
marker.infoWindowAnchor = CGPointMake(0.5, 0.5);
marker.map = mapView_;
marker.icon = [UIImage imageNamed:@"tempmarker.png"];

CLLocationCoordinate2D position2 = CLLocationCoordinate2DMake(39.860285, 116.274020);
GMSMarker *marker2 = [GMSMarker markerWithPosition:position2];
marker2.title = @"bbb";
marker2.snippet = @"population : 5";
marker2.infoWindowAnchor = CGPointMake(0.5, 0.5);
marker2.map = mapView_;
marker2.icon = [UIImage imageNamed:@"tempmarker2.png"];



//add buttons:directRoom, rank, achievement, mission, home
....

[self.view insertSubview: mapView_ atIndex: 0];

[EAGLContext setCurrentContext:nil];
// Ask for My Location data after the map has already been added to the UI.
dispatch_async(dispatch_get_main_queue(), ^{
    mapView_.myLocationEnabled = YES;
});
}

那么,如何处理这个问题,非常感谢!

【问题讨论】:

    标签: ios objective-c google-maps google-maps-sdk-ios


    【解决方案1】:

    有关参考,请参阅 Google 的演示(复制如下)。它与您发布的内容相似,但您可以尝试以下几种方法:

    1. 确保您的 API 密钥有效且 API 可以获取磁贴
    2. 检查您要插入的地图视图的 z-index 顺序:[self.view insertSubview: mapView_ atIndex: 0]; 插入到其他所有内容的后面。试试[self.view addSubview:mapView_]

    演示代码,来自 Google (https://developers.google.com/maps/documentation/ios/):

    #import <GoogleMaps/GoogleMaps.h>
    #import "DemoViewController.h"
    
    @implementation DemoViewController
    
    - (void)viewDidLoad {
      [super viewDidLoad];
      GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.868
                                                              longitude:151.2086
                                                                   zoom:6];
      GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
    
      GMSMarker *marker = [[GMSMarker alloc] init];
      marker.position = camera.target;
      marker.snippet = @"Hello World";
      marker.animated = YES;
    
      self.view = mapView;
    }
    
    @end
    

    【讨论】:

      【解决方案2】:

      检查您是否在您的应用委托的didFinishLaunchingWithOption 中正确输入了google API 密钥

      [GMSServices provideAPIKey:@"yourGoogleAssignedSDKKeyGoesHere"];  
      

      您的 xcode 应该是 4.5 或更高版本

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-19
        • 1970-01-01
        • 2022-11-11
        相关资源
        最近更新 更多