在iPhone中使用MKMapView的当前位置问题?

时间:2011-01-19 18:40:29

标签: iphone mkmapview

我正在将地图功能集成到我的应用程序中。我已经显示了当前位置。在我的问题是,我正在开发两个应用程序并显示当前位置。但是两个应用程序都在地图中的不同位置和不同视图中显示当前位置。查看我的屏幕截图alt text alt text

这两个截图都是由两个应用程序的模拟器拍摄的,它显示了不同的Map视图框架。但我已经使用相同的代码。(这也发生在设备中,显示与地图框架不同的位置)。我不知道为什么地图视图框架被更改了?我在XIB中创建了地图视图框架。我已经包含了所需的框架并启用了位置服务。为什么Map框架视图会发生变化?这对我来说很奇怪。

我的示例代码是

  - (void)viewDidLoad {

       [super viewDidLoad];
       self.locationManager = [[[CLLocationManager alloc] init] autorelease];

       self.locationManager.delegate = self; 

       [mapview setShowsUserLocation:YES];

    [locationManager startUpdatingLocation];

}

  - (void)locationManager: (CLLocationManager *)manager didUpdateToLocation: (CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
 {      
    MKCoordinateRegion region1;

    region1.center = newLocation.coordinate;

    //Change the Zoom level of the current location

    //region1.span.latitudeDelta = 0.1;//0.0001

    //region1.span.longitudeDelta = 0.1; //0.0001

    mapview.mapType = MKMapTypeStandard;

    //[mapview setRegion:region1 animated:TRUE];

    [locationManager stopUpdatingLocation];

    }

我希望,第一个屏幕截图地图视图框架是正确的。因为我已经将地图视图坐标(东北,西北,东南和西南)传递给服务器。如果帧大小错误,我将从服务器获取错误的用户详细信息。 请帮帮我。

谢谢!

1 个答案:

答案 0 :(得分:0)

要注释的locationManager:didUpdateToLocation:fromLocation:中的行是更新地图视图所必需的。您需要调用[mapView setRegion:animated]才能更改视图区域。你的代码在两个应用程序中是否完全相同?

我假设您知道在模拟器中当前位置始终是Cupertino的Apple总部,如您的第一个屏幕截图所示。