Google Maps iOS SDK:地图未加载

时间:2017-10-15 09:18:37

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

我是iOS开发新手,正在尝试使用Google Maps SDK的简单应用。我按照Google Maps Getting Started guide上列出的步骤进行操作。

我见过类似的问题: Google Maps iOS SDK Integration not loading maps 问题在于捆绑ID。我确定不是我的情况。

我已经花了3天时间从头开始尝试新应用。

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

  • 我添加了API密钥:

    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
        }
    
    }
    
  • 以下是ViewController.swift:

    function inject_subdomain($url,$subdomain)
       $url_parts = explode('://www',$url);
       $url_parts2 = explode('://',$url);
       if(count($url_parts)){
         return $url_parts[0].$subdomain.$url_parts[1];
        }
       return $url_parts2[0].$subdomain.$url_parts2[1];
    
    }
    

我在模拟器和真实手机上运行它。 我得到了标记和Google徽标,但没有地图。有人可以提供一些线索吗?

2 个答案:

答案 0 :(得分:7)

您好我找到了问题并解决了问题。 问题在于API密钥 - 而不是代码。 在IOS应用程序之前,我正在尝试一个示例android地图应用程序,我使用相同的控制台创建新的api密钥而不启用IOS的谷歌地图API。

开发人员控制台以某种方式允许在API密钥上添加IOS限制,即使未启用IOS SDK - 因此,我从未想过我需要做更多其他事情。

如果您收到此错误并且您已验证捆绑ID是最新的,请检查以下内容:

  • 转到https://console.developers.google.com
  • 点击信息中心
  • 点击页面顶部带有+标记的“启用API和服务”。
  • 检查您是否启用了“Google Maps SDK for iOS”。如果不是,请启用它。
  • 重新运行您的应用并享受:)

-Kal

答案 1 :(得分:0)

请确保在首次运行项目之前生成正确的api密钥。我遇到了类似的问题并通过使用此链接为iOS(而不是javascript或android)生成和启用正确的APIKey来修复它 - APIKey for iOS