zoukankan      html  css  js  c++  java
  • 关于原生地图定位的简单操作MapKit的使用

    //

    //  ViewController.m

    //  Demo_1 MKMapView

    //

    //  Created by tareba on 15/12/16.

    //  Copyright © 2015 tanada. All rights reserved.

    //

     

    #import "ViewController.h"

    #import <MapKit/MapKit.h>

    #import "TRAnnotation.h"

    @interface ViewController ()<MKMapViewDelegate>

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

    /**

     *  相同点:也要征求用户的同意

     */

    @property (nonatomic,strong)CLLocationManager *manager;

     

    - (IBAction)addAnnotation:(UIButton *)sender;

     

     

    @end

     

    @implementation ViewController

     

    - (void)viewDidLoad {

        [super viewDidLoad];

      //初始化manger

        self.manager=[[CLLocationManager alloc]init];

        //询问 征求用户同意

        [self.manager requestWhenInUseAuthorization];

        //delegate

        self.mapView.delegate=self;

      

        //设置地图不行允许旋转

        self.mapView.rotateEnabled=NO;

        //设置地图的显示类型(卫星/彼岸准地图/混合)

        //self.mapView.mapType=MKMapTypeHybrid;

        //开始定位

        self.mapView.userTrackingMode=MKUserTrackingModeFollow;

    }

    #pragma mark - MapViewDelegate

    //已经定位到用户的位置并且显示完

    - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation{

        NSLog(@"维度%f,精度%f",userLocation.location.coordinate.latitude,userLocation.location.coordinate.longitude);

        userLocation.title=@"用户位置";

        userLocation.subtitle=@"描述信息";

    }

    -  (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated{

        NSLog(@"地图即将发生移动");

    }

    //确定地图已经发生移动

    - (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated{

        NSLog(@"地图已经发生移动");

    }

     

    - (IBAction)addAnnotation:(UIButton *)sender {

        //创建模型类

        //遵循协议

        //.h中声明三个属性1个必须,两个可选

        //添加到地图视图上,(必须遵循MKAnnotation协议)

        CLLocationDegrees latitude = 35.123+arc4random_uniform(10);//0~10

        CLLocationDegrees longitude = 116.125+arc4random_uniform(20);

        TRAnnotation *annotation=[TRAnnotation new];

        annotation.coordinate=CLLocationCoordinate2DMake(latitude, longitude);

        //设置地图视图的显示区域(大头针都显示到视图的中心位置)

        //跨度

        MKCoordinateSpan span=MKCoordinateSpanMake(0.5, 0.52);

        //中心位置 跨度

        MKCoordinateRegion region=MKCoordinateRegionMake(annotation.coordinate, span);

        [self.mapView setRegion:region animated:YES];

        [self.mapView addAnnotation:annotation];

    }

     

    @end

     

     

     

    #import <Foundation/Foundation.h>

    #import <MapKit/MapKit.h>

     

    @interface TRAnnotation : NSObject<MKAnnotation>

    @property (nonatomic, assign) CLLocationCoordinate2D coordinate;

     

    @property (nonatomic, copy) NSString *title;

    @property (nonatomic, copy) NSString *subtitle;

    @end

    追寻最真
  • 相关阅读:
    前端战五渣学前端——跨域
    CSS3学习笔记
    Vue工程化入口文件main.js中Vue.config.productionTip = false含义
    CSS选择器有哪几种?举例轻松理解CSS选择器
    研究生综合英语 作文 作业
    tomcat部署项目的方法
    【Winfrom-无边框窗体】Winform如何拖动无边框窗体?
    C#调用默认浏览器打开网页的几种方法
    CefSharp在高DPI的屏幕上出现黑边(winform)
    c# 关于mongo bson转json的问题
  • 原文地址:https://www.cnblogs.com/zhao-jie-li/p/5052262.html
Copyright © 2011-2022 走看看