我正在构建一个iOS应用程序。我正在使用故事板来构建屏幕,我已经在我的项目中集成了谷歌地图。
我想在地图上点击位置,并想在Airbnb应用程序中的标签中显示该位置。我做不到,有人能帮忙吗。
这是我的代码:
- (void)viewDidLoad {
[super viewDidLoad];
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
longitude:151.20
zoom:6];
mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView_.myLocationEnabled = YES;
self.view = mapView_;
GMSMarker *marker = [[GMSMarker alloc] init];
marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
marker.title = @"Sydney";
marker.snippet = @"Australia";
marker.map = mapView_;
}
感谢您的帮助!
您必须使用GMSMapViewDelegate
协议。确切地说,方法mapView:didTapAtCoordinate:
将根据您的需要检测地图上的抽头,并为您提供抽头的坐标。
要使用该方法,请在viewDidLoad
中添加以下行:
mapView_.delegate = self;
然后在同一类中实现方法:
- (void)mapView:(GMSMapView *)mapView didTapAtCoordinate:(CLLocationCoordinate2D)coordinate{
// coordinate contains your coordinate :)
NSLog(@"did tap at coordinate: (%f, %f)", coordinate.latitude, coordinate.longitude);
}
更新:要添加标记,可以执行以下操作:
- (void)mapView:(GMSMapView *)mapView didTapAtCoordinate:(CLLocationCoordinate2D)coordinate{
// coordinate contains your coordinate :)
NSLog(@"did tap at coordinate: (%f, %f)", coordinate.latitude, coordinate.longitude);
// Create the marker and add it to the map
CLLocationCoordinate2D position = CLLocationCoordinate2DMake(coordinate.latitude, coordinate.longitude);
GMSMarker *marker = [GMSMarker markerWithPosition:position];
marker.appearAnimation = kGMSMarkerAnimationPop;
marker.map = mapView_;
// Zoom into the current location
GMSCameraPosition *cameraPosition = [GMSCameraPosition cameraWithTarget:position zoom:15.0];
[mapView_ animateToCameraPosition:cameraPosition];
}