zoukankan      html  css  js  c++  java
  • iOS 地图(MKMapView)

    //定位  需要在info中添加NSLocationWhenInUseUsageDescription

       if ([[UIDevice currentDevice].systemVersion doubleValue]>=8.0) {
            //获取权限
            [self.locationManager requestWhenInUseAuthorization];
        }
        //开始定位
        [self.locationManager startUpdatingLocation];
    
    //懒加载
    -(CLLocationManager *)locationManager{
        
        if (!_locationManager) {
            
            _locationManager=[[CLLocationManager alloc]init];
            
            _locationManager.delegate=self; //
        }
        return _locationManager;
        
    }
    

     创建地图

     self.mapView =[[MKMapView alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
        //1.跟踪用户位置(显示用户的具体位置)
        self.mapView.userTrackingMode =MKUserTrackingModeFollow;
        
        //2.设置地图类型
    //    self.mapView.mapType=MKMapTypeStandard;
        
        //设置代理
        self.mapView.delegate=self;
        
    //    self.mapView.showsUserLocation=YES;
        
        [self.view addSubview:self.mapView];
    
    
    
    #pragma mark - NKMapViewDelegate
    //当用户的位置更新,就会调用(不断地监控用户的位置,调用频率特别高)
    - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation{
      //  MKUserLocation  大头针模型对象
        NSLog(@"%f %f",userLocation.location.coordinate.longitude ,userLocation.location.coordinate.latitude);
        userLocation.title=@"天苍苍野茫茫风吹草地见牛羊";
        userLocation.subtitle=@"床前光,地上霜";
        
        //设置地图的中心点 ( 用户所在的区域)
       // [mapView setCenterCoordinate:userLocation.location.coordinate animated:YES];]
        
         //设置地图的显示范围
        //设置跨度
        MKCoordinateSpan span =MKCoordinateSpanMake(0.5,0.5);
        
        CLLocationCoordinate2D center = userLocation.location.coordinate;
        mapView.region=MKCoordinateRegionMake(center, span);
    
    }
    
    //获取当前跨度
    -(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated{
        
        
        NSLog(@"%f %f",mapView.region.span.latitudeDelta,mapView.region.span.longitudeDelta);
    }
    

    添加大头针 (自己定义 需要创建一个遵守MKAnnotation协议的类)

    #import <Foundation/Foundation.h>
    #import <MapKit/MapKit.h>
    @interface WBAnnotation : NSObject<MKAnnotation>
    
    @property (nonatomic,assign) CLLocationCoordinate2D coordinate;
    @property (nonatomic, copy)  NSString *title;
    @property (nonatomic, copy) NSString *subtitle;
    

    创建大头针

       //创建手势
        UITapGestureRecognizer * longpress =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapMapVIew:)];
     
        //添加手势
        [self.mapView addGestureRecognizer:longpress];
    
    
    //响应手势事件
    - (void)tapMapVIew:(UITapGestureRecognizer * )tap{
        
        //1.获得用户在地图点击的位置(x,y)
        CGPoint point =[tap locationInView:tap.view];
        
        //2.将数学坐标转为 地理经纬度坐标
         CLLocationCoordinate2D coordinate= [self.mapView convertPoint:point toCoordinateFromView:self.mapView];
    
        //3.创建大头针模型,添加大头针到地图上(自定义的大头针类)
        WBAnnotation *anno =[[WBAnnotation alloc]init];
        anno.coordinate =coordinate;
        anno.title=@"大哥";
        anno.subtitle=@"你好棒";
        
        [self.mapView addAnnotation:anno];
        
    }
    
  • 相关阅读:
    VOA 2009/11/02 DEVELOPMENT REPORT In Kenya, a Better Life Through Mobile Money
    2009.11.26教育报道在美留学生数量创历史新高
    Java中如何实现Tree的数据结构算法
    The Python Tutorial
    VOA HEALTH REPORT Debate Over New Guidelines for Breast Cancer Screening
    VOA ECONOMICS REPORT Nearly Half of US Jobs Now Held by Women
    VOA ECONOMICS REPORT Junior Achievement Marks 90 Years of Business Education
    VOA 2009/11/07 IN THE NEWS A Second Term for Karzai; US Jobless Rate at 10.2%
    Ant入门
    Python 与系统管理
  • 原文地址:https://www.cnblogs.com/wangbinbin/p/4810419.html
Copyright © 2011-2022 走看看