【问题标题】:MKMapView not loading on mapType MKMapTypeStandard and MKMapTypeHybridMKMapView 未在 mapType MKMapTypeStandard 和 MKMapTypeHybrid 上加载
【发布时间】:2016-08-31 00:09:20
【问题描述】:

我正在开发一个应用程序,其中必须加载 3 种不同的地图类型。

  1. MKMapTypeStandard
  2. MKMapTypeHybrid。
  3. MKMapTypeSatellite。

MKMapTypeSatellite 工作正常,但在 MKMapTypeStandard 和 MKMapTypeHybrid 中加载地图时。它调用以下委托方法

- (void)mapViewDidFailLoadingMap:(MKMapView *)mapView withError:(NSError *)error;

它给了我以下错误。

UserInfo={SimpleTileRequesterUnderlyingErrors=( "错误域=GEOErrorDomain Code=-204 \"(null)\" UserInfo={HTTPStatus=410, NSErrorFailingURLStringKey=http://gspe19.ls.apple.com/tile.vf?flags=1&style=1&size=2&scale=0&v=11043961&z=12&x=660&y=1590&sid=1311957767904651942802757092322405105280&accessKey=1462435981_hSWhfZAWqY7wbLSz_6yKz632EUigAIfHlARfHz5OZnObk4SFpRyFZH9qim7suxznqeD333wldHPDaCADTpx1hD98l55WMoqg6qjh2BMyZtDwLayiLzpSWLxfuYD4Oi%2BI3wB%2BGvMwttokk5y8UlnR1E68zLU6KuXF4MWLKLhvv%2F6utSC8RDmorsQksacSTvCwYc45PeV5ba%2Fjvt2d3}"....

我正在切换地图类型

-(IBAction)valuechange:(id)sender{
    switch (((UISegmentedControl *) sender).selectedSegmentIndex) {
        case 0:
            _mapView.mapType = MKMapTypeStandard ;
            break;

        case 1:
            _mapView.mapType = MKMapTypeSatellite ;
            break;

        case 2:
            _mapView.mapType = MKMapTypeHybrid ;
            break;

        default:
            break;
    }

更新: 我想我有类似的问题 MKMapView fails to load tiles with HTTP 410 error

当我重新启动模拟器时。现在地图加载完美。同样,我的客户告诉我,如果他在他的设备地图加载完美时终止应用程序。但是每个新加载的应用程序都有这个问题。我现在越来越沮丧。 :(

【问题讨论】:

  • 哇,13 分钟内获得 5 个赞 :)
  • @DudeDeveloper 你是在设备还是模拟器中测试?
  • 实际上我的客户在他的设备中遇到了这个问题。我的模拟器有问题

标签: ios objective-c dictionary mkmapview


【解决方案1】:

此代码对我有用。如果您有一些修改,请在下面查看。

- (void)viewDidLoad {

[super viewDidLoad];

mapView = [[MKMapView alloc]initWithFrame:
           CGRectMake(10, 100, 300, 300)];
mapView.delegate = self;
mapView.centerCoordinate = CLLocationCoordinate2DMake(37.32, -122.03);
mapView.mapType = MKMapTypeHybrid;
CLLocationCoordinate2D location;
location.latitude = (double) 37.332768;
location.longitude = (double) -122.030039;

// Add the annotation to our map view
MapAnnotation *newAnnotation = [[MapAnnotation alloc]
                                initWithTitle:@"MKMapTypeHybrid" andCoordinate:location];
[mapView addAnnotation:newAnnotation];
CLLocationCoordinate2D location2;
location2.latitude = (double) 37.35239;
location2.longitude = (double) -122.025919;
MapAnnotation *newAnnotation2 = [[MapAnnotation alloc]
                                 initWithTitle:@"MKMapTypeHybrid" andCoordinate:location2];
[mapView addAnnotation:newAnnotation2];
[self.view addSubview:mapView];

}


// When a map annotation point is added, zoom to it (1500 range)
- (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views
{

MKAnnotationView *annotationView = [views objectAtIndex:0];
id <MKAnnotation> mp = [annotationView annotation];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance
([mp coordinate], 1500, 1500);
[mv setRegion:region animated:YES];
[mv selectAnnotation:mp animated:YES];

}

只需更改值 mapView.mapType = MKMapTypeStandard;

MKMapTypeStandard、MKMapTypeHybrid & MKMapTypeSatellite

如果你想查看,我也发布了图片。

【讨论】:

  • 我有类似的代码。它在我的设备上工作,但在模拟器上它不工作。我的客户在他的设备上遇到问题。奇怪...没有运气:(
  • 我已经在模拟器中测试过它并且工作正常。您可能遗漏了什么,请再次检查。
猜你喜欢
  • 2015-10-01
  • 2014-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多