如何在iOS中加载视图时显示用户当前位置?

时间:2015-01-26 08:00:32

标签: ios objective-c google-maps google-maps-sdk-ios

我是iOS开发中的新手我制作一个Goggle地图支持的应用它显示用户当前位置但当我按下GMSMapView上的CurrentLocation按钮然后我显示用户当前位置但我想显示用户到当前位置WithOut按键我的意思是当viewDidLoad我用缩放显示直接当前位置时请帮帮我。

在这里,我写一个像我.h File中的代码。

#import <UIKit/UIKit.h>
#import <GoogleMaps/GoogleMaps.h>

@interface MapViewController : UIViewController<GMSMapViewDelegate>
@property (nonatomic,retain) IBOutlet GMSMapView *mapView;
@end

.m File like as的代码

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.mapView.myLocationEnabled = YES;
    self.mapView.mapType = kGMSTypeNormal;
    self.mapView.settings.compassButton = YES;
    self.mapView.settings.myLocationButton = YES;
    self.mapView.delegate = self;
}

请帮助我显示当前位置没有当前位置按钮按。 并请帮助我如何在谷歌地图中获取当前位置地址。

感谢。

1 个答案:

答案 0 :(得分:2)

尝试:

[self.mapView animateToLocation: self.mapView.myLocation.coordinate];

请注意,如果位置尚未确定,则myLocation可能为nil!您可以使用键值观察(KVO)来确定何时设置当前位置的动画。

-(void) viewDidLoad {
    [super viewDidLoad];
    [self.mapView addObserver:self forKeyPath:@"myLocation" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
}

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{

    if ([keyPath isEqualToString:@"myLocation"]) {
        // Animate map to current location (This will run every time user location updates! 
        [self.mapView animateToLocation: self.mapView.myLocation.coordinate];
        // You can remove self from observing 'myLocation' to only animate once
        [self.mapView removeObserver:self forKeyPath:@"myLocation"];
    }
}