2017-10-15 180 views
0

我是iOS开发新手,正在尝试使用Google Maps SDK的简单应用。我遵循Google Maps Getting Started guide上列出的步骤。谷歌地图iOS SDK:地图不加载

我看到了类似的问题: Google Maps iOS SDK Integration not loading maps 问题出在bundle ID。我确信我不是这种情况。

我已经花了3天尝试从头开始新的应用程序。

  • 我创建了一个新的API密钥,添加了我的包ID。

  • 我加入API密钥:

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
        // Override point for customization after application launch. 
        GMSServices.provideAPIKey("MYKEY") 
        return true 
    } 
    
  • 以下是ViewController.swift:

    import UIKit 
    import GoogleMaps 
    
    class ViewController: UIViewController { 
    
        override func viewDidLoad() { 
         super.viewDidLoad() 
         // Do any additional setup after loading the view, typically from a nib. 
         let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0) 
         let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera) 
         view = mapView 
    
         let marker = GMSMarker() 
         marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20) 
         marker.title = "Sydney" 
         marker.snippet = "Australia" 
         marker.map = mapView 
        } 
    
    } 
    

我跑它在模拟器和真正的手机。 我得到标记和Google徽标,但没有地图。有人能提供一些线索吗?

+0

您是否已下载GoogleInfo.plist并将其添加到项目中的目标? – Aks

+0

他们在你的代码中存在问题。一个是你设置地图的矩形,另一个是你必须添加地图作为子视图。你可以按照这个教程 https://www.raywenderlich.com/109888/google-maps-ios-sdk-tutorial –

+0

感谢指针 - 我没有添加.plist,我只是按照谷歌入门指南。我会尝试你的建议,并会回来.. – kal

回答

0

嗨我发现了问题并解决了问题。 问题出在API密钥上 - 而不是代码。 在IOS应用程序之前,我正在尝试一个示例Android地图应用程序,并使用相同的控制台创建新的API密钥,但未启用IOS的Google Maps API。

即使SDK for IOS未启用,开发人员控制台也允许在API密钥上添加IOS限制 - 因此,我从来没有想过我需要做更多的事情。

如果你得到这个错误,你已经验证软件包ID是当前,检查以下内容:

  • 转到https://console.developers.google.com
  • 点击仪表盘
  • 点击“启用API和服务”与+标记在页面的顶部。
  • 检查是否启用了“Google Maps SDK for iOS”。如果不是,启用它。
  • 重新运行你的应用程序,并享受:)

-Kal

0

请确保您运行的第一次项目之前您生成正确的API密钥。我面临类似的问题,并通过使用此链接生成并启用适用于iOS的APIKey(并非JavaScript或Android)来修复它 - APIKey for iOS