当视图在iOS中加载时如何在缩放时显示用户当前位置?
Posted
技术标签:
【中文标题】当视图在iOS中加载时如何在缩放时显示用户当前位置?【英文标题】:How to Show User Current Location On Zoom When View Did Load in iOS? 【发布时间】:2015-01-26 08:00:31 【问题描述】:我是 ios 开发的新手,我制作了一个 Goggle 地图支持的应用程序,它显示用户当前位置,但是当我按下我的 GMSMapView
上的 CurrentLocation 按钮时,我会显示用户当前位置,但我想在不按下按钮的情况下向用户显示当前位置我的意思是当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】:试试:
[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"];
【讨论】:
@thnks amrin 但它不能在模拟中工作。我想从纬度和经度获取地址怎么可能? 在这里我想直接缩放到我的位置它没有设置缩放来引导我的位置,就像我在我的模拟器中将位置设置为孟买一样。然后它只是显示孟买不是一个完美的位置孟买。请给我解决方案。 您可以使用- (void) animateToZoom: (float) zoom
方法。所以设置[self.mapView animateToZoom: zoomFloat];
你真的应该阅读文档:developers.google.com/maps/documentation/ios/reference/…以上是关于当视图在iOS中加载时如何在缩放时显示用户当前位置?的主要内容,如果未能解决你的问题,请参考以下文章
Jquery Geocomplete。在页面加载时显示用户当前位置