我刚刚开始学习iPhone的iOS开发,并按照几个关于如何使用MapKit Framework
显示mapView的示例,我发现谷歌地图图块没有显示,我只得到一个空视图(灰色瓷砖),至少在iPhone模拟器中(我还没试过过设备)。
我也收到此错误消息:
/SourceCache/GoogleMobileMaps_Sim/GoogleMobileMaps-363.1.2/googlenav/mac/Loader.mm:235 服务器返回错误:403
我在为Android开发时找到了解决类似问题的解决方案,但对于iOS则没有。有人可以帮我解决这个问题吗?将MapKit
框架添加到项目中应该足以使其正常工作,或者我可能缺少一些我未遵循的教程中未提及的额外设置?
谢谢!
这是我使用的简单示例代码:
// ViewController.h
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import <CoreLocation/CoreLocation.h>
@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet MKMapView *mapView;
@end
// ViewController.m
#import "ViewController.h"
@implementation ViewController
@synthesize mapView=_mapView;
- (void)viewDidUnload {
[super viewDidUnload];
[self setMapView:nil];
}
... more methods...
在.xib文件中,我将MKMapView
连接到文件的所有者mapView插座。在这一点上,根据教程,我应该能够在运行模拟器时看到默认的美国地图,但我总是得到我之前在调试区域发布的错误,而地图视图只显示灰色空格。
答案 0 :(得分:2)
我遇到了同样的问题 - 我的UIMapView
只显示了网格,而不是实际的地图。我退出模拟器,然后再次启动项目 - 现在它显示了地图!似乎iOS模拟器有时会丢失连接,即使您可能已连接到计算机上。
谢谢大家的投入!
答案 1 :(得分:1)
您是否已将代理设置为文件所有者(自己)? 你还包括mapkit框架和相关的头文件吗?
答案 2 :(得分:1)
无论出于何种原因,我的iOS模拟器有时会失去与互联网的连接(我的电脑有连接,但模拟器无法识别它)。一旦我退出并重新启动我的模拟器,我的地图就开始显示了。
答案 3 :(得分:0)
iOS模拟器附带官方地图应用程序。打开它并验证它是否可以获得磁贴,这可能是一个网络问题。没有任何代码,出口,代表或任何地图应该显示地图数据。
答案 4 :(得分:0)
我通过手机连接到WIFI解决了这个问题。我的手机里没有安装SIM卡,因此只显示了瓷砖。只需确保您有网络连接。
答案 5 :(得分:0)
您尝试指定地图区域时在iPhone模拟器和设备上看到的空地图视图(灰色图块)(例如,请参阅下面的代码),但用户未授予访问权限到应用程序设置中的位置。在模拟器上运行时删除这段代码解决了这个问题。
MKCoordinateRegion mapRegion;
mapRegion.center = self.mapView.userLocation.coordinate;
mapRegion.span.latitudeDelta = 0.02;
mapRegion.span.longitudeDelta = 0.02;
[self.mapView setRegion:mapRegion animated: YES];
答案 6 :(得分:0)
如果有人在寻找解决方案。网络问题全权负责此问题。确保您的模拟器具有网络连接,并且如果它能够加载默认的Apple Map,那么您就可以使用了。
答案 7 :(得分:0)
这个问题有点棘手,因为它涉及很多情况,但是对我来说,由于网络监控应用程序的原因,它没有加载。 browser.on('targetcreated', async target => {
if (target.type() === "page") {
const page = await target.page();
await page.evaluateOnNewDocument(preloadFile);
await page.setUserAgent(data.userAgent);
await page.setViewport({
width: data.viewportWidth,
height: data.viewportHeight
});
}
});
,请确保您已连接互联网并且不受监控