引用
UILongPressGestureRecognizer *lpress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)];
lpress.minimumPressDuration = 0.3;//按0.5秒响应longPress方法
lpress.allowableMovement = 10.0;
//给MKMapView加上长按事件
[mapView addGestureRecognizer:lpress];//mapView是MKMapView的实例
[lpress release];
- (void)longPress:(UIGestureRecognizer*)gestureRecognizer {
if (gestureRecognizer.state == UIGestureRecognizerStateBegan){ //这个状态判断很重要
//坐标转换
CGPoint touchPoint = [gestureRecognizer locationInView:self.mapView];
CLLocationCoordinate2D touchMapCoordinate =
[self.mapView convertPoint:touchPoint toCoordinateFromView:self.mapView];
//这里的touchMapCoordinate.latitude和touchMapCoordinate.longitude就是你要的经纬度,
NSLog(@"%f",touchMapCoordinate.latitude);
NSLog(@"%f",touchMapCoordinate.longitude);
}
}
长按添加图钉
- (void)longPress:(UIGestureRecognizer*)gestureRecognizer { if (gestureRecognizer.state == UIGestureRecognizerStateBegan){ //这个状态判断很重要 //坐标转换 CGPoint touchPoint = [gestureRecognizer locationInView:self.mapView]; CLLocationCoordinate2D touchMapCoordinate = [self.mapView convertPoint:touchPoint toCoordinateFromView:self.mapView]; //这里的touchMapCoordinate.latitude和touchMapCoordinate.longitude就是你要的经纬度, NSLog(@"%f",touchMapCoordinate.latitude); NSLog(@"%f",touchMapCoordinate.longitude); //30.264998 120.122538 30.285012 120.117989 LocationObject *aLocationObject = [[LocationObject alloc]initWithTitle:@"hello" latitue:touchMapCoordinate.latitude longitude:touchMapCoordinate.longitude]; aLocationObject._subTitleString = @"world"; NSMutableArray *_mapAnnotations = [[NSMutableArray alloc]initWithCapacity:1]; [_mapAnnotations addObject:aLocationObject]; [self.mapView addAnnotations:_mapAnnotations ]; [_mapAnnotations release]; [aLocationObject release]; } }