Objective c 如何设置pin';s在用户上的位置';现在在哪里? /.h文件 #进口 #进口 #进口 @接口MapMain:UIViewController { MKMapView*mapView; CLLocationManager*locationManager; } @属性(非原子,保留)IBMMapView*mapView; -(iAction)GetLocation:(id)发送方; -(iAction)设置PIN:(id)发送方; @结束 //代码在.m之内 -(无效)viewDidLoad { self.mapView.showsUserLocation=是; self.mapView.delegate=self; [self.mapView setUserTrackingMode:MKUserTrackingModeFollow-animated:YES]; //加载视图后执行任何其他设置。 locationManager=[[CLLocationManager alloc]init]; locationManager.distanceFilter=KCLDistanceFilterOne;//无论何时移动 locationManager.desiredAccuracy=KCallocationAccuracyHundredMeters;//100米 [locationManager startUpdatingLocation]; } -(NSString*)设备位置{ 返回[NSString stringWithFormat:@“纬度:%f经度:%f”,locationManager.location.coordinate.latitude,locationManager.location.coordinate.longitude]; } -(iAction)设置PIN:(id)发送方 { NSLog(@“%@,[自设备定位]); Pin*newPin=[[Pin alloc]init]; newPin.coordinate= newPin.title=@“title Tester”; newPin.subtitle=@“子测试仪”; [self.mapView addAnnotation:newPin]; }

Objective c 如何设置pin';s在用户上的位置';现在在哪里? /.h文件 #进口 #进口 #进口 @接口MapMain:UIViewController { MKMapView*mapView; CLLocationManager*locationManager; } @属性(非原子,保留)IBMMapView*mapView; -(iAction)GetLocation:(id)发送方; -(iAction)设置PIN:(id)发送方; @结束 //代码在.m之内 -(无效)viewDidLoad { self.mapView.showsUserLocation=是; self.mapView.delegate=self; [self.mapView setUserTrackingMode:MKUserTrackingModeFollow-animated:YES]; //加载视图后执行任何其他设置。 locationManager=[[CLLocationManager alloc]init]; locationManager.distanceFilter=KCLDistanceFilterOne;//无论何时移动 locationManager.desiredAccuracy=KCallocationAccuracyHundredMeters;//100米 [locationManager startUpdatingLocation]; } -(NSString*)设备位置{ 返回[NSString stringWithFormat:@“纬度:%f经度:%f”,locationManager.location.coordinate.latitude,locationManager.location.coordinate.longitude]; } -(iAction)设置PIN:(id)发送方 { NSLog(@“%@,[自设备定位]); Pin*newPin=[[Pin alloc]init]; newPin.coordinate= newPin.title=@“title Tester”; newPin.subtitle=@“子测试仪”; [self.mapView addAnnotation:newPin]; },objective-c,annotations,location,Objective C,Annotations,Location,在“Set Pin”中,我想将newPin的坐标设置为用户的当前位置。我找到了函数“deviceLocation”,但不知道如何在我的SetPin函数中调用和使用它 请帮忙 在MKMapView.h的MKMapViewDelegate部分中查看以下方法 //.h file #import <UIKit/UIKit.h> #import <MapKit/MapKit.h> #import <CoreLocation/CoreLocation.h> @interf

在“Set Pin”中,我想将newPin的坐标设置为用户的当前位置。我找到了函数“deviceLocation”,但不知道如何在我的SetPin函数中调用和使用它


请帮忙

在MKMapView.h的
MKMapViewDelegate
部分中查看以下方法

//.h file
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import <CoreLocation/CoreLocation.h>
@interface MapMain : UIViewController <MKMapViewDelegate>
{
MKMapView *mapView;
CLLocationManager *locationManager;
}

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

-(IBAction)GetLocation:(id)sender;
-(IBAction)SetPin:(id)sender;

@end

//code within .m

- (void)viewDidLoad
{
self.mapView.showsUserLocation = YES;
self.mapView.delegate = self;
[self.mapView setUserTrackingMode:MKUserTrackingModeFollow animated:YES];
// Do any additional setup after loading the view.
locationManager = [[CLLocationManager alloc] init];
locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; // 100 m
[locationManager startUpdatingLocation];

}


-(NSString *)deviceLocation {
return [NSString stringWithFormat:@"latitude: %f longitude: %f",    locationManager.location.coordinate.latitude, locationManager.location.coordinate.longitude];
}


-(IBAction)SetPin:(id)sender
{
NSLog(@"%@", [self deviceLocation]);

Pin *newPin = [[Pin alloc]init];
newPin.coordinate = 
newPin.title = @"Title Tester";
newPin.subtitle = @"Sub Tester";
[self.mapView addAnnotation:newPin];

}
特别是
mapView:didUpdateUserLocation:
从那里,您可以获得用户位置并为内容设置注释

- (void)mapViewWillStartLocatingUser:(MKMapView *)mapView NS_AVAILABLE(10_9, 4_0);
- (void)mapViewDidStopLocatingUser:(MKMapView *)mapView NS_AVAILABLE(10_9, 4_0);
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation NS_AVAILABLE(10_9, 4_0);
- (void)mapView:(MKMapView *)mapView didFailToLocateUserWithError:(NSError *)error NS_AVAILABLE(10_9, 4_0);