如何在MKMapView上显示当前位置

12

我正在我的应用程序上使用MKMapView。我需要在模拟器上显示当前位置。
是否可能在模拟器上显示当前位置。

3个回答

18
在模拟器中,用户当前位置始终位于加利福尼亚州的库比蒂诺。
如果您正在使用Interface Builder添加地图视图,则只需在地图视图的属性检查器中选中“显示用户位置”复选框即可。(选择地图视图并键入command-1以显示属性检查器。)
如果您是通过编程方式添加或操作地图视图,请将地图视图的showsUserLocation属性设置为YES
更新:事实证明这是可能的,只是不能使用内置的地图视图功能,并且它并不总是有效。

最新版本的SDK(必须在Snow Leopard上运行)可以使用CLLocationManager获取模拟器正在运行的机器的位置。然后,您可以使用此位置创建注释以显示在地图视图上。它不会像内置的“用户位置指示器”一样运作(至少需要一些工作),但它将显示用户的当前位置。

有关此技术无法正常工作的详细信息,请参见此帖子

请参见CLLocationManager文档的“相关示例代码”部分,其中包含使用CLLocationManager和CLLocationManagerDelegate的示例代码,然后在地图视图上显示用户的位置。


+1----好的,我撤回了我的答案,很高兴知道这是可能的...我有新的事情要做... 谢谢... - Ranjeet Sajwan
请看一下我的问题并提出建议——和https://dev59.com/0lHTa4cB1Zd3GeqPPz1B - Ranjeet Sajwan

13
 self.mapView.delegate =  self;
 self.mapView.showsUserLocation = YES;

这将显示MkMapview中的当前位置。

如果您正在使用Interface Builder,在“Attributes Inspector”中,我们有一个选项Behaviour,它有一个选项Show User Location,选中该选项也会做同样的事情。

如果您无法在模拟器中看到,请执行以下操作:

  1. 在模拟器中打开应用程序。
  2. 从菜单栏选择Debug->Location->(如果选择了"None"选项,则将其更改为“Custom Location”)并设置位置。

使用CLLocationManager也可以获取当前位置, 将Corelocation FrameWork导入项目中。

.h文件中

#import <CoreLocation/CoreLocation.h>
@property (nonatomic, strong) CLLocationManager *locationManager;
@property (nonatomic, strong) CLLocation* currentLocation;

.m文件中

if ([CLLocationManager locationServicesEnabled] )
    {
        if (self.locationManager == nil )
        {
            self.locationManager = [[CLLocationManager alloc] init];
            self.locationManager.delegate = self;
            self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
            self.locationManager.distanceFilter = kDistanceFilter; //kCLDistanceFilterNone// kDistanceFilter;
        }

        [self.locationManager startUpdatingLocation];
    }

委托函数:

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
    self.currentLocation = [locations lastObject];
   // here we get the current location
}
希望这个答案能对你有所帮助。

0

无论是 iOS 6、6.1 还是 iOS 7,模拟器都不会显示用户当前位置。要模拟位置,请单击此处。如果您想要显示用户当前位置,则需要在设备上运行您的应用程序或更改模拟器设置 -

从模拟器菜单中选择“调试”>“位置”>“自定义位置...”


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接