iOS 大头针怎么固定在中间,且移动后及时更新位置信息
2015-08-14 15:04
585 查看
首先在viewdidload里增加地图的一个触摸事件
UITapGestureRecognizer *mTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapPress:)];
[self.mapView addGestureRecognizer:mTap];
事件实现如下:
[cpp] view plaincopyprint?
- (void)tapPress:(UIGestureRecognizer*)gestureRecognizer {
CGPoint touchPoint = [gestureRecognizer locationInView:self.mapView];//这里touchPoint是点击的某点在地图控件中的位置
CLLocationCoordinate2D touchMapCoordinate =
[self.mapView convertPoint:touchPoint toCoordinateFromView:self.mapView];//这里touchMapCoordinate就是该点的经纬度了
NSLog(@"touching %f,%f",touchMapCoordinate.latitude,touchMapCoordinate.longitude);
}
//
以下是生成大头针的方法
- (BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id <BMKAnnotation>)annotation
{
NSString *AnnotationViewID = @"renameMark";
if (newAnnotation == nil) {
newAnnotation = [[BMKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationViewID];
// 设置颜色
((BMKPinAnnotationView*)newAnnotation).pinColor = BMKPinAnnotationColorPurple;
// 从天上掉下效果
((BMKPinAnnotationView*)newAnnotation).animatesDrop = YES;
// 设置可拖拽
((BMKPinAnnotationView*)newAnnotation).draggable = YES;
// newAnnotation.frame=CGRectMake(180, 200, 50, 50);
}
newAnnotation.centerOffset = CGPointMake(0, -(newAnnotation.frame.size.height * 0.5));
newAnnotation.annotation = annotation;
[newAnnotation setSelected:YES animated:YES];
return newAnnotation;
}
MKMap显示地图后,如果用户移动了地图,自己定义的数据就需要刷新了,所以这个时候,中心点的经纬度就比较重要了。
本文演示如何获取经纬度
在MKMapViewDelegate里有个方法
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
这个方法就是在Map移动 后执行,所以我们可以在这里获取移动后地图中心点的经纬度了。
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
MKCoordinateRegion region;
CLLocationCoordinate2D centerCoordinate = mapView.region.center;
region.center= centerCoordinate;
NSLog(@" regionDidChangeAnimated %f,%f",centerCoordinate.latitude, centerCoordinate.longitude);
}
UITapGestureRecognizer *mTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapPress:)];
[self.mapView addGestureRecognizer:mTap];
事件实现如下:
[cpp] view plaincopyprint?
- (void)tapPress:(UIGestureRecognizer*)gestureRecognizer {
CGPoint touchPoint = [gestureRecognizer locationInView:self.mapView];//这里touchPoint是点击的某点在地图控件中的位置
CLLocationCoordinate2D touchMapCoordinate =
[self.mapView convertPoint:touchPoint toCoordinateFromView:self.mapView];//这里touchMapCoordinate就是该点的经纬度了
NSLog(@"touching %f,%f",touchMapCoordinate.latitude,touchMapCoordinate.longitude);
}
//
以下是生成大头针的方法
- (BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id <BMKAnnotation>)annotation
{
NSString *AnnotationViewID = @"renameMark";
if (newAnnotation == nil) {
newAnnotation = [[BMKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationViewID];
// 设置颜色
((BMKPinAnnotationView*)newAnnotation).pinColor = BMKPinAnnotationColorPurple;
// 从天上掉下效果
((BMKPinAnnotationView*)newAnnotation).animatesDrop = YES;
// 设置可拖拽
((BMKPinAnnotationView*)newAnnotation).draggable = YES;
// newAnnotation.frame=CGRectMake(180, 200, 50, 50);
}
newAnnotation.centerOffset = CGPointMake(0, -(newAnnotation.frame.size.height * 0.5));
newAnnotation.annotation = annotation;
[newAnnotation setSelected:YES animated:YES];
return newAnnotation;
}
MKMap显示地图后,如果用户移动了地图,自己定义的数据就需要刷新了,所以这个时候,中心点的经纬度就比较重要了。
本文演示如何获取经纬度
在MKMapViewDelegate里有个方法
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
这个方法就是在Map移动 后执行,所以我们可以在这里获取移动后地图中心点的经纬度了。
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
MKCoordinateRegion region;
CLLocationCoordinate2D centerCoordinate = mapView.region.center;
region.center= centerCoordinate;
NSLog(@" regionDidChangeAnimated %f,%f",centerCoordinate.latitude, centerCoordinate.longitude);
}
相关文章推荐
- (链接)xcode7,ios9 部分兼容设置
- 使用CocoaPods 出错
- iOS启动页
- iOS 地图移动中心点获取
- iOS应用程序生命周期(前后台切换,应用的各种状态)详解
- iOS中tableview通过点击实现Cell的伸缩
- IOS问题
- IOStime处理
- ios中将view转为image
- 【IOS】ios8推送消息注册
- IOS AFNetWorking 下载文件 断点续传
- IOS8 设置TableView Separatorinset 分割线从边框顶端开始
- IOS常用第三方框架 - Rosie
- 使用CocoaPods 但找不到头文件解决方法
- iOS中assign、copy 、retain等关键字的含义
- iOS中手机拍照的图片旋转
- iOS中的NSString引用计数问题(-1和整数最大值)
- iOS开发之监听键盘高度的变化
- Nagios配置之交换机及路由
- ios 获得设备型号