iOS Mapkit - 用户位置显示为 0, 0



所以我正在构建一个基于位置的游戏,并且在让用户位置正确初始化时遇到了问题。它并不总是发生,但有时位置永远不会从 0,0 更改。

这会导致一个问题,因为我有一个加载视图(保险库),它会阻止显示地图,直到加载玩家的位置而不是 0,0。因此,如果未设置用户位置,则保管库永远不会打开以显示地图。

有没有其他方法可以确保加载用户位置?仅供参考 - 我已经确保他们启用了定位服务并且他们的设备有能力。我在自己的设备上打开和关闭了此问题,并且正确启用了所有功能。

ViewDidLoad:

/*Location Manager*/
locationManager = [[CLLocationManager alloc] init]; 
locationManager.delegate = self; 
[locationManager setDistanceFilter:100.0];//Update location to network when player moves X meters
[locationManager setDesiredAccuracy:kCLLocationAccuracyKilometer];//Nearest 1000 meters (.33 miles)
[locationManager startUpdatingLocation];
/*Map View*/
mapLoaded = false;
currentFilter = 0;
[_mapView setDelegate:self];
[_mapView setShowsUserLocation:YES];
[_mapView setMapType:MKMapTypeSatellite];

位置经理代表:

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
    //Wait until User Location is initialized (NOT 0,0)
    NSLog(@"Latitude: %f, Longitude: %f",_mapView.userLocation.coordinate.latitude,_mapView.userLocation.coordinate.longitude);
    if(_mapView.userLocation.location.coordinate.latitude!=0.00 && _mapView.userLocation.location.coordinate.longitude!=0.00){
        //Update Player Object
        [player setLatitude:_mapView.userLocation.location.coordinate.latitude];
        [player setLongitude:_mapView.userLocation.location.coordinate.longitude];
        [player updatePlayerLocation];//Update location to network
        if(mapLoaded){//Map already loaded, call refresh
            [self refreshMap];
        }
        else{//First load of map
            [_mapView setCenterCoordinate:_mapView.userLocation.location.coordinate];
            [self populateMap];
            [self openVault];
            mapLoaded = true;//Disable map first load
            //timerMap = [NSTimer scheduledTimerWithTimeInterval:60 target:self selector:@selector(refreshMap) userInfo:nil repeats:YES];//Auto-Refresh of Map
        }
    }
}

您似乎正在尝试从_mapView.userLocation CLLocation对象获取位置。

您应该改用传递给方法的locations数组中的最后一项。

另请参阅文档,带代码段的指南

相关内容

  • 没有找到相关文章

最新更新