iOS大典之地图Map Kit

MAPKit使用详解 (地图 + 定位 + 地理编码 + 反地理编码 + 大头针添加 + 导航) //苹果导航: - (void)appleRoad{ MKMapItem *currentLocation = [MKMapItem mapItemForCurrentLocation]; _geocoder = [[CLGeocoder alloc]init]; [_geocoder geocodeAddressString:self.address completionHandler:^(NSArray<CLPlacemark *> * _Nullable place 阅读详情

Map Kit


可以显示任何位置,

比如: 定位你的移动轨迹

就是个实时交互的地图


简单操作下, 感受它的魅力

创建个Single View Application工程


1 . ViewController.m 中导入系统的框架

#import <MapKit/MapKit.h>

因为活地图是需要位置的, so 还要用到一个框架 Core Location

#import <CoreLocation/CoreLocation.h>

2 . 声明需要用到的属性

@property (nonatomic, strong) CLLocationManager *manager;

@property (nonatomic, strong) MKMapView *mapView;

3 . 开始正题, 在viewDidLoad中

- (void)viewDidLoad {
    [super viewDidLoad];


    self.manager = [[CLLocationManager alloc] init];
     // 设置地理位置请求,
     // 需要点进Info.plist添加个名为NSLocationAlwaysUsageDescription
    [self.manager requestAlwaysAuthorization];



    // 地图初始化
    self.mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];
    // 设置委托
    self.mapView.delegate = self;

    // 设置地图跟随位置移动
    self.mapView.userTrackingMode = MKUserTrackingModeFollow;

    // 设置地图样式
    self.mapView.mapType = MKMapTypeStandard;

    [self.view addSubview:self.mapView];


}

代理三步走: 遵守协议-设置委托-委托方法
so 先遵守协议

@interface ViewController ()<MKMapViewDelegate>

4 . 委托方法和大头钉

#pragma mark -- 地图代理方法 --

-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
    userLocation.title = @"WC";
    userLocation.subtitle = @"WIFI";
}

#pragma mark -- 大头钉 --

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
    MKPinAnnotationView *view = (MKPinAnnotationView *)[_mapView dequeueReusableAnnotationViewWithIdentifier:@"identifier"];
    if (view == nil) {
        view = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"identifier"];
    }

    // 设置大头钉颜色
    view.pinColor = MKPinAnnotationColorPurple;

    // 显示subtitle和title信息
    view.canShowCallout =YES;

    // 大头钉动画效果出生
    view.animatesDrop = YES;

    return view;
}

编译运行,

瞬间畅游世界


over

MapKit 地图使用 MapKit地图的使用技巧。 立即下载

相关推荐

加速度计解算姿态角

姿态角(欧拉角) 欧拉角主要用于描述刚体在固定三维参考坐标系下由于绕三轴任意旋转而形成的姿态角,具体描述参看欧拉角说明 图中xyz为固定参考系坐标,XYZ为刚体自有坐标系 (假定右手定则,即大拇指指向某一轴正方向,握拳是其余手指的转动方向为姿态角变化的正方向),则定义 绕固定坐标系的z轴旋转:航向角yaw, 转动 y 角度 绕固定坐标系的y轴旋转:俯仰角pitch,转动p 角度 绕固定坐标系的x轴旋转:横滚角roll, 转动r 角度 可以看出欧拉角或者姿态角是相对各个轴的角度偏移,再假定旋转的顺规为Z

卢平光的博客 1万+

HarmonyOS Map Kit 开发全攻略:地图集成、标记控制与定位融合

在 HarmonyOS 应用开发中,地图功能是本地生活、出行导航、位置服务类 App 的核心模块。华为 Map Kit 提供了丰富的地图能力,包括地图渲染、标记点管理、相机控制、定位融合等功能。本文将从开发准备(签名配置) 到核心功能实现(地图显示、标记控制、定位融合) ,一步步拆解 Map Kit 的集成流程,附带完整可复用代码,助力开发者快速落地地图相关功能。

xiaokangzhao_的博客 1721

移远EC800M CAT1模块HTTP POST实战:从AT指令到OneNet平台数据上报(附STM32代码)

本文详细介绍了移远EC800M CAT1模块通过AT指令实现HTTP POST数据上报到OneNet平台的完整流程,包含STM32实战代码。内容涵盖PDP上下文激活、HTTP服务配置、JSON数据包构建等关键技术要点,并提供硬件连接、状态机设计和错误处理等实用方案,助力开发者快速实现物联网设备稳定数据传输。

weixin_42565652的博客 508

CoreLocation地理定位 Map Kit 地图展示

在这里总结一下关于地图定位的知识。CoreLocaton,Map Kit。 在移动互联网时代,移动app能解决用户的很多生活琐事,比如 导航:去任意陌生的地方 周边:找餐馆、找酒店、找银行、找电影院 在上述应用中,都用到了地图和定位功能,在iOS开发中,要想加入这2大功能,必须基于2个框架进行开发 Map Kit :用于地图展示 Core Location :用于地理定位 2

luobo140716的专栏 1317

电子产品设计中EFT防护的关键技术与实践

本文深入探讨了电子产品设计中EFT(快速瞬变脉冲群)防护的关键技术与实践。文章从EFT干扰的原理入手,系统阐述了通过优化PCB布局与地平面设计、构建电源与信号端口滤波防护电路、精选核心器件以及实施软件容错策略,来构建多层次、系统性的抗干扰防线,助力产品稳定通过严苛的电磁兼容测试。

e4f5g6h的博客 786

Unity 升级引擎版本后构建报错:script class layout is incompatible between the editor and the player

Unity升级引擎版本后,项目报错:script class layout is incompatible between the editor and the player。

学习与分享 594

iOS大典之点击旋转, 点击停止

最基本的旋转功能代码, 注释有解释, 复制代码就可以实现功能代码如下: 声明需要用到的属性 // 声明一个imageView @property (nonatomic, retain) UIImageView *imageView;// 声明一个属性 记录是否在旋转 @property (nonatomic, assign) BOOL isRuning; 创建方法, (void)addSu

triffe 2042

汽车软件工程师必看:ASPICE开发流程全解析(附各阶段交付物清单)

本文全面解析了汽车行业广泛采用的ASPICE开发流程,详细介绍了从需求挖掘到系统架构设计、软件工程及测试验证各阶段的关键操作和交付物清单。针对汽车软件工程师,提供了实用的协作指南和工具推荐,帮助团队提升开发效率并降低项目风险,是掌握ASPICE标准的必备指南。

weixin_30733003的博客 647

iOS大典之UIView

iOS最基本的控件就是视图控件 UIViewA. 创建视图 创建UI控件步骤: 1. 初始化一个空间 2. 设置属性 3. 显示视图 4. 释放内存如: UIView *aView

triffe 702

5分钟搞定!用Keil MDK将STM32F103C8T6工程无缝迁移到ZET6开发板

本文详细介绍了如何在Keil MDK环境下快速将STM32F103C8T6工程迁移到ZET6开发板,涵盖硬件差异对比、工程配置调整、外设适配及编译排错等关键步骤,帮助开发者5分钟内完成工程移植,大幅提升开发效率。

weixin_30879169的博客 409

如何用Megatron-LM搭建多卡集群?手把手教你配置分布式训练环境

本文提供了一份详细的Megatron-LM多卡集群搭建实战指南。从硬件兼容性检查、软件栈版本对齐,到分布式并行策略(数据并行、张量并行、流水线并行)的配置与多节点启动脚本编写,手把手教你配置稳定高效的分布式训练环境,并分享了关键的排错与性能调优经验。

yellow的专栏 414

iOS大典之表视图UITableView

UITableView表视图用来显示数据列表,它遵守两个协议:因为 获取配置数据 UITableViewDelegate 获取行数据 UITableViewDataSource表视图有两种基本样式: 1: 无格式表 UITableViewStylePlain . 每个分组的标题可以自定义样式, 使用了索引,

triffe 688

镜头调焦的 调整的是焦距还是像距?

在镜头 “调焦”(即日常拍照时的)中,调整的核心是,而非焦距。

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 1352

iOS大典之旋转停不下来

旋转根本停不下来, UIView 的旋转可以看我的博客 iOS大典之点击旋转,这里举例一个常用的 UILabel, 将字体像钟表一样停不下了1 . 创建一个UILabel 作为实例变量和属性@property (strong, nonatomic) UILabel *label;2 . 在viewDidLoad方法中添加 - (void)viewDidLoad { [super vie

triffe 672

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

iOS大典之集合视图

项目遇到了集合视图, 感觉得整理下又来一篇遵守协议@interface RootViewController ()<UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout> // 创建一个集合视图 - (void)addSubViews { // Item 布局 (网格状布

triffe 667

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

iOS大典之动态相册

简单动态相册, 相册功能很实用, 属于必须掌握的范畴.准备: 图片若干张; 创建UIView 创建UIViewController实现: 点击 start按钮, 开始动态显示 点击 stop按钮, 停止UIView中设置属性, 并实现 @property (nonatomic, retain)UIImageView *imageView;// 开始按钮 @property (nona

triffe 658

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

iOS大典之MPMoviePlayerController

MPMoviePlayerController实现视频的播放.简单试用. 复制代码就可以尝试创建个Single View模板.#import "ViewController.h" #import <MediaPlayer/MediaPlayer.h>@interface ViewController () @property (nonatomic, strong) MPMoviePlayerCon

triffe 633

iOS大典之自定义cell

自定义cell步骤: 1: 创建一个继承自UITableViewCell的类2: 重写初始化方法3: 在初始化方法中, 把需要的视图加到self.contentView上面4: 去返回cell的方法中, 把系统的 UITableViewCell 替换成你自己创建的类例如: 音乐播放器中, 需要单独的自定义cell 来存放歌词, 歌词放在label中创建类 LyricCell , 声明

triffe 513

iOS大典之地图Core Location

Core Location用来确定物理位置,显示经度, 纬度, 海拔, 水平精度, 垂直精度, 需要打印显示; 或者创建Label显示. 括弧: 利用代理传值, 有点折腾. 懒得写 和 Map Kit 一样, 都是系统框架.1 . 创建个Single View, 导入框架, 遵守协议#import <CoreLocation/CoreLocation.h>@interface ViewContr

triffe 503

iOS大典之UIScrollView

滚动视图UIScrollView 补充了父类UIView的一些功能就是滚动的功能比如 : 相册的滑动切换, 利用UIScrollView的滚动功能就能实现.以下是个相册例子, 5张照片, View只显示一张照片, 左右切换5张照片利用重用机制布局视图, 显示3张照片给参考下 相册图片引用摄影师: 一张王义博 喜欢的可以去关注他第一步: AppDelegate中设置 RootViewCon

triffe 476

iOS大典之Core Data

Core Data用来保存应用数据创建Single View工程, 要勾上 Use Core Data 的复选框, 创建数据模型 : 点击选中CoreData.xcdatamodeld, 然后commond + N, 出来数据模型编辑界面,点击面板左下方的加号图标(Add Entity), 创建个Entity实体, 双击名字可以修改添加属性 : 点加号, 输入名字, 并更改type补

triffe 461

iOS大典之单例传值

传值过程中, 会遇到一个变量可能被多个类使用, 的情况 最简单的办法是, 将变量定义在单例类中, 操作时直接使用这里简单的介绍如何使用单例. 步骤就是: 1. 定义单例类 2 . 类方法创建单例对象 3 . 根据需要实现单例注意: 单例只初始化一次; 不用管理内存; 方法命名规范是以share开头; 单例继承于NSObj

triffe 243

[iOS]Runtime2

为了让你在父类中依然能访问当前对象(也就是子类的实例),编译器在底层会生成一个结构体,叫 : 当调用 时,底层调用的函数是 : 拿着(也就是当前的子类对象)作为消息接收者,但是把方法查找的起点定位在了 (父类)这里需要注意的就是仍然是调用者自己,即先讲一下上篇没讲过的,我们如果缓存未命中,那我们就会进入慢速查找,现在我们来详细的讲解在进入慢速查找的瞬间会再看一遍方法列表,然后立刻调用加锁,因为多线程下别人正在动态添加方法或者扩容,不加锁会崩溃类就绪OC的机制就是在编译期只生成了 结构,当类首次被发送消息时(

wzm20070304的博客 266

VS Code + KXApp 开发 iOS 报错排查指南,工程、签名、真机、补全、配置

在 VS Code 里用 KXApp 开发 iOS,报错常不在代码而在环境。本文按失败阶段分五类排查:工程没出现 Xcode 视图(查 .xcodeproj 与 xcode-select)、构建失败(No profiles、Team 签名、CocoaPods 用 .xcworkspace)、真机调试失败(信任、开发者模式、设备未准备好)、没补全或 No such module(等索引、清 clangd 冲突)、设置保存不了(装 xcodeproj gem),每类给现象、日志通道和修法。

2501_91590906的博客 214

flutter ios 4.3.a被拒整改方案

本文分享了团队首次推进Flutter项目iOS上架时遭遇4.3.a审核被拒的全过程。历经四次提审失败,因未深入分析根本原因,仅做局部优化,导致问题反复。最终通过复盘、整理被拒文档、结合元数据与IPA-Diff工具分析,发现核心问题是二进制代码相似度过高,源于Flutter项目未深度重构。遂开展为期两周的系统性整改:重构Dart代码、清理冗余、升级Flutter版本、优化元数据与UI设计,降低二进制指纹至0.23,成功通过审核。强调海外上架需环境隔离、专用设备,并愿免费协助解决同类问题。

zdgdq的专栏 197
上一篇: iOS大典之表视图UITableView
下一篇: iOS大典之地图Core Location
triffe
博客等级 码龄11年 1粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值