私はあなたのタッチ イベント座標の解決策を得ましたが、MKmapView を使用する必要があります。以下のコードを貼り付けています。
.h で
#import <MapKit/MapKit.h> //import this in your project
//define the objects;
MKMapView *mapView;
CLLocationCoordinate2D coordinate;
プロジェクトに MapKit.framework を追加することを忘れないでください
メートルで
- (void)viewDidLoad
{
mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];//Release it in dealloc
mapView.delegate=self;
[self.view addSubview:mapView];
[self displayRegion];
UITapGestureRecognizer *tgr = [[UITapGestureRecognizer alloc]initWithTarget:self
action:@selector(handleGesture:)];
tgr.numberOfTapsRequired = 1;
[mapView addGestureRecognizer:tgr];
[tgr release];
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer
{
if (gestureRecognizer.state != UIGestureRecognizerStateEnded)
return;
CGPoint touchPoint = [gestureRecognizer locationInView:mapView];
coordinate = [mapView convertPoint:touchPoint toCoordinateFromView:mapView];
NSLog(@"latitude %f longitude %f",coordinate.latitude,coordinate.longitude);
}
-(void)displayRegion
{
MKCoordinateRegion region;
MKCoordinateSpan span;
span.latitudeDelta=0.2;
span.longitudeDelta=0.2;
CLLocationCoordinate2D location;
location.latitude = 22.569722 ;
location.longitude = 88.369722;
region.span=span;
region.center=location;
[mapView setRegion:region animated:TRUE];
[mapView regionThatFits:region];
}
このコードをテストすると、正しい値が得られました。もう1つ、シミュレーターではなくデバイスで常にこれをテストしようとします。結果を返信してみてください。今はうまくいくはずです