【问题标题】:iOS map showing a user's current locaiton显示用户当前位置的 iOS 地图
【发布时间】:2015-09-04 02:55:04
【问题描述】:

我一直在尝试让用户的当前位置显示在我的地图上,但一直未能成功。我是 MapKit 的新手,所以我可能遗漏了一些东西。

我确实收到了要求允许使用我当前位置的弹出警报,但实际上没有显示任何位置。

代码如下:

标题.h:

@interface TeachersMapViewController : UIViewController <MKMapViewDelegate,  CLLocationManagerDelegate>

#define IS_OS_8_OR_LATER ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)

@property (nonatomic,retain) CLLocationManager *locationManager;
@property(nonatomic, retain) IBOutlet MKMapView *mapView;


@end

实施

- (void)viewDidLoad
{

#ifdef __IPHONE_8_0
    if(IS_OS_8_OR_LATER)
    {
        [self.locationManager requestWhenInUseAuthorization];
    }
#endif

    self.locationManager.delegate=self;
   [self.locationManager startUpdatingLocation];

    [self.mapView.userLocation addObserver:self
                                forKeyPath:@"location"
                                   options:(NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld)
                                   context:NULL];    

}

对此的任何帮助将不胜感激。

【问题讨论】:

  • 在 MapView 上,您需要将 showUserCurrentLocation 属性设置为 YES。 mapView.showsUserLocation = YES;

标签: objective-c mapkit currentlocation


【解决方案1】:

您可以通过以下方式启用用户位置:

self.mapView.showsUserLocation = YES;

如果您使用的是模拟器,它不会显示您当前的位置,它可能在美国。 " 默认情况下,模拟器会显示美国的某个位置。如果您想更改该位置,请在 iOS 模拟器菜单中转到 Debug -&gt; Location -&gt; Custom Location。在那里您可以设置纬度和经度并相应地测试应用程序。这适用于 @ 987654324@ 和CLLocationManager"

【讨论】:

  • 感谢修复,虽然它已经缩小了,请问有没有快速说明可以将视图放大到用户位置周围的区域?
  • 你的意思是你想缩放用户位置区域吧?
  • 好吧,你可以从这个答案stackoverflow.com/a/15833566/3800154放大看看
猜你喜欢
  • 1970-01-01
  • 2020-02-29
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 2015-08-09
  • 1970-01-01
  • 2016-10-11
相关资源
最近更新 更多