28

我已经逐步实现了“Getting the Google Maps SDK for iOS”

最后模拟器运行正常,没有发现错误,但地图除了标记之外没有任何细节。

如图所示:

模拟器截图

底部的输出也有此消息:

2012-12-23 01:06:59.869 GogleMap[3680:c07] GMSZoomTableQuadTree 缺少 >tile 类型 (mapType: 10) 的根缩放表 2012-12-23 01:07:00.042 GogleMap[3680:1b03] Google Maps SDK for iOS 版本:1.0.1.1154 2012-12-23 01:07:00.375 GogleMap[3680:c07] ClientParametersRequest 失败,3 次尝试 > 剩余。Error Domain=DASHConnectionError Code=100 “操作无法完成。(DASHConnectionError 错误 100。)”

请帮助并提前感谢。

4

20 回答 20

63

已解决:我认为我们都跳过了这个过程中一个很小但非常重要的步骤。

要开始使用,请在 Google API 控制台中启用 Google Maps SDK for iOS 服务以及其他 Google API。

在此处输入图像描述

在Google API 控制台中启用适用于 iOS 的 GoogleMap SDK 后,您的应用将在下次运行时正确加载图块。祝你好运!

于 2013-02-22T16:08:50.173 回答
8

@user1924208 我也有同样的问题。我不知疲倦地在互联网上搜索答案,不幸的是,我认为我们不走运。Google API 控制台可能会向您显示 Google Maps v.3 的 API 密钥,它不是 Google Maps iOS API 密钥。因此,当您将其用作 API 密钥时,验证请求将始终失败。

似乎无论出于何种原因,他们都没有为 iOS 版本发布很多 API 密钥。令人沮丧的是,您只需要等到收到他们的电子邮件(不确定什么时候会......)。

您可以确认这一点,因为用任何随机字符串替换当前 API 密钥将产生相同的结果。顺便说一句,这在我测试过的模拟器和真实设备上也会产生相同的结果。

更新

我刚刚收到来自 Google 地图的电子邮件,说我的 API 密钥现在可用。我用 GMSServices 关闭了 MKMapKit,一切正常。似乎他们现在对发布 API 密钥感到更自在了,所以希望你很快就会得到你的。

于 2012-12-23T18:16:17.840 回答
6

注意,请确保您还在“服务”选项卡中启用了“Google Maps SDK for iOS”。

在我意识到我只生成了一个 API 密钥但忘记启用该服务之前,我遇到了类似的错误。解决了我的问题。

SDKDemos[160:907] ClientParametersRequest failed, 0 attempts remaining (0 vs 5). 
Error Domain=com.google.Maps.GMSDASHConnection Code=100 
"The operation couldn’t be completed. (com.google.Maps.GMSDASHConnection error 100.)"
于 2013-02-22T06:32:19.257 回答
3

我遇到了类似的问题,但我确信 API 密钥很好,因为 SDK 包中的示例项目与我在实际应用程序中使用的密钥 - 捆绑 ID 对一起使用。如果您的 API 密钥似乎无效,最新 (1.2) 版本的 sdk 实际上会注销警告。它无法显示地图的原因是我没有在项目设置的目标摘要选项卡中填写内部版本号。事实证明,您绝对需要在 Info.plist 中设置 CFBundleVersion 才能使 google 地图正常工作,否则地图将保持空白,不会显示错误或警告,甚至不会发出 Web 请求。

于 2013-04-20T19:34:34.163 回答
2

我有同样的问题。我认为问题是我的项目的“捆绑标识符”与我的 Google APIs Console 中的捆绑标识符之一不同

因此,我为我的 Google API 控制台添加了更多捆绑标识符:从 Project Navigator 中选择您的项目本身,然后选择您的应用程序的目标。在标签Summary中,记住您在Bundle Identifier中的字符串。

转到 Google API 控制台页面,在控制台中选择 API 访问窗格,找到 iOS 应用程序的密钥部分,选择编辑允许的 iOS 应用程序...并添加您在上面记得的包标识符。重新运行您的项目并完成!

于 2013-02-27T16:40:30.167 回答
2

只需确保启用位置

模拟器选项 Features->Location->Apple

在此处输入图像描述

于 2020-12-11T12:06:52.157 回答
1

我遇到了同样的问题,然后我去了谷歌控制台并点击“生成新密钥”并且新密钥有效!

于 2013-02-28T19:01:19.390 回答
1

确保你没有改变你的

[包标识符]

为应用程序。它应该与您在生成 API 密钥时使用的匹配。

于 2013-03-29T05:09:13.637 回答
1

重要提示:如果您想在 iOS 设备上使用谷歌地图进行练习,只需下载GoogleMaps.framework

在不知不觉中,我已经下载了GoogleMapsM4B.framework并遇到了诸如“您的密钥可能对您的捆绑包 ID 无效:com.company.example”之类的问题

如果您想在您的项目中使用GoogleMapsM4B.framework,那么 1.您应该在企业支持门户(Google 的网站)上请求支持 2.您必须在 Google 的控制台网站中启用Google Maps Mobile SDK for Work而不是Google Maps SDK for iOS 。

如果您想使用GoogleMaps.framework而不是GoogleMapsM4B (Maps for Business),那么您不需要请求支持中心,您只需要在 Google 的控制台网站中启用适用于 iOS 的 Google Maps SDK。

您可以找到适用于 iOS 的 Google Maps SDK 和适用于 Work 的Google Maps Mobile SDK (M4B)之间的主要区别。

并将 GoogleMaps/GoogleMaps.h 导入您的文件并将您的 api 密钥传递给以下方法:

[GMSServices provideAPIKey:@“Your API Key“];

(或者)

如果您有有效的许可证,则下载 GoogleMapsM4B.framework 并将 GoogleMapsM4B/GoogleMaps.h 导入您的文件并将 api 传递给相同的方法[GMSServices provideAPIKey:@“Your API Key“] ,但我想您可能只有在购买许可证后才能获得此密钥。

所以我面临的主要问题是......我没有下载GoogleMaps.framework ,而是下载了GoogleMapsM4B.framework并添加到我的项目中。每次我运行我的项目时,它都会给我一个错误提示“您的密钥可能对您的捆绑 ID 无效:com.example.sampleapp”

现在我的项目工作正常。

于 2015-02-25T15:43:46.430 回答
1

从另一个角度跟进:

在更高版本的 Google 地图框架中存在一个错误,如果应用程序在后台,则该错误会阻止地图被实例化/创建/添加到超级视图。

当您这样做时,生成的地图将显示为完全空白,而不是左下角的 Google 徽标。原因是操作系统不允许在后台进行 OpenGL 渲染。他们只需要在前景化后重新启动渲染器。

谷歌终于解决了这个问题(大约一年后),所以请升级到最新最好的。

如果您使用 Google for Business:

pod 'Google-Maps-iOS-SDK-for-Business', '~> 1.11.1'

对于旧版本,这里有此问题的重现。

视觉再现:

OpenGL 错误

于 2015-12-23T19:26:52.087 回答
0

看起来您没有指定有效的 API 密钥。你是否有一个?

于 2012-12-23T14:33:48.113 回答
0

此错误表示用于初始化 Google 地图的密钥无​​效:

[GMSServices provideAPIKey:@"YOUR_API_KEY"];

该密钥由 Google 专门为 iOS SDK 发布(显然只发给少数选定的);Google Maps SDK v2 和 v3 的密钥不适用于 Apple。

确认错误确实是由无效键引起的一种方法是通过显示图钉。Pushpin 不需要有效的键,因此它将在空的地图视图对象上可见。从入门页面https://developers.google.com/maps/documentation/ios/start#add_a_map对示例进行编码应该会导致应用程序显示一个空的地图视图(带有黄色背景和中心的图钉)。

确保 pin 可见的最佳方法是对相机和标记使用完全相同的坐标,请参见代码段:

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:43.65
                                                        longitude:-79.45
                                                             zoom:6];

mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];

mapView_.myLocationEnabled = YES;
self.view = mapView_;

GMSMarkerOptions *markerOptions = [[GMSMarkerOptions alloc] init];
markerOptions.position = CLLocationCoordinate2DMake(43.65, -79.45);
markerOptions.title = @"Greater Toronto Area";

[mapView_ addMarkerWithOptions:markerOptions];
于 2013-02-06T16:28:40.947 回答
0

另一个抬头!确保您的应用程序包标识符与 Google API 控制台中“iOS 应用程序”字段中定义的包 ID 匹配。

于 2013-03-25T10:33:05.057 回答
0

遇到了同样的问题。当然,一切都做对了。问题是您的 API 密钥需要一些时间才能开始工作(也许有关它的信息通过谷歌服务器传播,这意味着您最近的服务器尚不知道新的 API 密钥)。

因此,在 API 密钥创建错误停止后的大约 5 分钟内,我拥有了完全正常工作的 API 密钥。(注意,我没有收到任何来自谷歌的电子邮件)。

于 2013-04-18T11:14:55.307 回答
0

这帮助了我:(错误拼写 API 密钥,因为 XCode 最初返回错误,除非 API 被 {} IOS - ObjC Google Maps Api Key

于 2013-10-24T00:42:34.870 回答
0

我解决了这个问题如下。

  1. 转到 Google Maps API 控制台(旧)。启用的服务是适用于 iOS 的 Google Maps SDK 和 Google Street View Image API。
  2. 我已禁用 Google Street View Image API。
  3. 然后,不再输出错误。
于 2014-01-20T12:39:30.040 回答
0

对我来说,这是因为我的应用程序的包标识符已更改。在为新的捆绑标识符获取新的 API 密钥后,它再次开始工作。

于 2014-05-12T07:13:18.843 回答
0

首先是让你的钥匙是正确的。然后检查您是否启用了适用于 iOS 的 Google Maps SDK。比在设备上运行应用程序,而不是在模拟器上运行。

于 2015-02-09T12:44:17.727 回答
0

尽量不要将 API Key 保存在任何常量上。直接传值。如果它不起作用,请尝试重新生成 API 密钥映射肯定会起作用

MapServices.ProvideAPIKey ("AIzaSyAnxfhuAwEqdVhQpoUkGFZpsBukOSXVFr0");

快乐编码:)

于 2016-03-30T11:44:14.753 回答
-1

现在苹果删除了谷歌地图并添加了苹果地图。

检查以下事项:

  1. 减少地图视图中的缩放。

  2. 使用什么版本的iOS?如果您使用的是 iOS 6,则谷歌地图无法使用 Apple 地图必须可以使用。

  3. 有时模拟器不支持某些核心功能,请检查设备的功能。

  4. 确保必须设置委托和数据源。

谢谢。

于 2012-12-23T06:11:47.567 回答