学习
实践
活动
专区
工具
TVP
写文章

iOS开发地图

iOS开发中,地图也是很多App都需要使用的功能。本文主要对iOS中的地图知识点进行介绍。需要说明的是地图看似很复杂,其实它仅仅是一个控件,就和UIButton、UITableView等一样。 一、理论知识 地图既然是控件,就可以在StoryBoard和代码中使用 地图上如果想要显示用户的位置,必须与定位配合,那么就需要创建定位管理器、设置权限等,可以参考iOS开发之定位,同时需要设置地图的属性 StoryBoard中添加地图控件 拖拽IBOutlet 声明CLLocationManager 声明权限 设置gpx数据 二、地图基本使用 实现功能:显示地图,并且显示用户所在的位置,点击用户的位置 实现效果 三、地图缩放级别 实现功能:在之前功能的基础上实现地图的任意视角(“缩放级别”) 代码 @interface ViewController ()<MKMapViewDelegate> 实现效果 四、添加标注 功能:点击屏幕,可以添加标注 说明:添加标注分三步 创建标注模型 重写地图的代理方法,返回标注的样式 将标注添加到地图 代码 标注模型 @interface MyAnnotation

44220
  • 广告
    关闭

    新年·上云精选

    热卖云产品年终特惠,2核2G轻量应用服务器7.33元/月起,更多上云必备产品助力您轻松上云

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS 高德地图开发详解

    2.2自动配置,(使用 CocoaPods 安装 SDK) 为 高德 iOS 地图 SDK 创建一个 Podfile,并使用它来安装 SDK。 (如果您第一次接触 iOS 开发,请创建一个Single View Application。) 3.地图的使用 3.1配置Info.plist 文件 iOS9为了增强数据访问安全,将所有的http请求都改为了https,为了能够在iOS9中正常使用地图SDK,请在"Info.plist"中进行如下配置 在iOS SDK中,比例尺默认显示在地图的左上角。MAMapView的showScale属性用来控制比例尺的可见性,scaleOrigin属性用来改变比例尺的显示位置。 左侧目录中选中工程名,开启 TARGETS->Capabilities->Background Modes 2)在 Background Modes中勾选 Location updates 10.大头针标注 地图标注在开发中经常使用

    54420

    iOS地图开发1-定位(swift)

    概述 关于ios地图定位相关的开发可以分两块,一块为调用ios的定位获取GPS坐标以及坐标–>地址,地址–>坐标,另一块就是调用苹果对地图的封装,也可以调用高德或者百度地图的SDK,不过引用将近10M 的库,但是功能上要比直接调用系统封装的要强大的多,所以我建议app里基本上只要求定位与地图上显示的,就直接用原生的封装,自定义较多的,比如设置定位点覆盖物的图标就引用第三方的 坐标系 因为gps,高德, 百度用的坐标系都是不一样的所以开发上就要注意得到的到底是哪个坐标系,以及坐标系之间的转换,三种标准如下所说: WGS-84:是国际标准,GPS坐标(Google Earth使用、或者GPS模块) GCJ { showNoticeWait(text: "地图解析中..."); if(locations.count>0){ var location:CLLocation = { println(error) } (5)注意点 解析地址是传入的坐标不是GPS定位的坐标,而是火星坐标 ios8必须在配置文件上配置定位提示语的字段,info.plist中添加NSLocationAlwaysUsageDescription

    84310

    iOS 调用苹果自带地图导航不准确问题解决

    因为App需要调用第三方导航软件导航,后台返回的GPS,但是发现调用高德导航就要准确一些,调用苹果自带的地图导航偏差很大,查阅了相关资料如下 高德地图、腾讯地图以及谷歌中国区地图使用的是GCJ-02坐标系 百度地图使用的是BD-09坐标系 苹果自带地图在国内使用高德提供的数据,所以使用的是GCJ-02坐标系 找到原因后需要把gps转换为高德坐标系,在网上找了gps转换GCJ02的一些方法。 转化后导航偏差也有点大。 一种是调在线Api: https://lbs.amap.com/api/webservice/guide/api/convert/ 二种是调用SDK方法 https://lbs.amap.com/api/ios-sdk 直接上代码 // 苹果地图导航 + (void)navAppleMap:(NSString *)lat lng:(NSString *)lng { //坐标转换 CLLocationCoordinate2D

    2.9K10

    iOS开发UINavigation系列一——导航栏UINavigtionBar

    iOS开发UINavigation系列一——导航栏UINavigtionBar 一、导航栏的使用         在iOS开发中,我们通常会使用导航控制器,导航控制器中封装了一个UINavigationBar 我们也可以设置导航栏的风格属性,从iOS6之后,UINavigationBar默认为半透明的样式,从上面也可以看出,白色的导航栏下面透出些许背景的红色。 三、导航栏常用属性和方法         从上面我们可以看到,iOS6后导航栏默认都是半透明的,我们可以通过下面的bool值来设置这个属性,设置为NO,则导航栏不透明,默认为YES: @property setBackgroundImage:(nullable UIImage *)backgroundImage forBarMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS item的push与pop操作         UINavigationBar上面不只是简单的显示标题,它也将标题进行了堆栈的管理,每一个标题抽象为的对象在iOS系统中是UINavigationItem

    33531

    哪个地图导航好用准确?

    1,百度地图 最富有的地图,包括郊区的新道路和城里的小路等都可以完全展示出来。百度地图是我们的成功的数据搜集并且集成搜索引擎大数据结合的综合展示。 image.png 2,腾讯地图 腾讯地图,我必须拥有,否则我将不我,腾讯地图导航迅速开发给QQ和微信数据。有QQ和普通微信用户的支持,他们可以快速获得他们要的导航。 3,Sogou地图 Sogou地图叫最新的地图信息,并且实时更新,这真的吸引了很多人下载,使用后也不会非常尴尬的,尽管导航声音很疯狂,但是为机械声音,缺少刺激。 4,360地图 360地图中规中矩没有她自己的特点,最大的缺点是360标记商家或街道有时展出在其他地图上,这不是360导航,没有360浏览设备的体验很差。我认为它应该制作大而全的导航。 高德地图也是一个全面的导航地图

    2.2K20

    iOS原生地图开发指南 原

    iOS原生地图开发详解 在上一篇博客中:http://my.oschina.net/u/2340880/blog/414760。 对iOS中的定位服务进行了详细的介绍与参数说明,在开发中,地位服务往往与地图框架结合使用,这篇博客主要对iOS官方的地图框架MapKit.framework进行介绍。 一、初始化地图视图与相关属性方法介绍 1、初始化地图视图 地图视图的展示依赖于MKMapView这个类,这个类继承于UIView,因此和其他View的使用方法类似。 ,//标准的卫星地图     MKMapTypeHybrid//混合地图(在卫星图上显示街道等名称) }; 3、设置地图的中心和比例尺 在百度地图等第三方地图服务的SDK中,都会提供一个类似zoomLevel - (void)mapView:(MKMapView *)mapView didAddOverlayViews:(NSArray *)overlayViews; 添加完成覆盖物数组执行的方法 备注:在iOS9

    51730

    iOS开发之集成高德地图(一)

    iOS开发中,经常会使用到定位和地图,Apple自带的定位和地图应付一般的场景绰绰有余,但是也缺少一些功能,如POI搜索、不够接地气等。因此作者选择了高德地图,这篇文正主要介绍定位功能的集成。 环境:Xcode7.3.1 + iOS 9.3 + 能访问网络 ---- 1、注册开发者,创建应用 首先注册成为开发者,成为开发者以后,登录并进入控制台,然后创建一个iOS应用,注意这一定要填写好你的 申请Key.JPG 2、通过CocoaPods导入需要的SDK platform :ios, '9.0' #手机系统版本 target '集成高德地图' do #新建的Xcode工程名 self.locationManager.delegate = self; // 设置反地理编码 self.locationManager.locatingWithReGeocode = YES; //iOS9 超过10次停止定位 [self.locationManager stopUpdatingLocation]; } } @end 总结 三种不同的定位,都可以实现定位,开发时请根据不同的需求选择不同的定位方式

    1K60

    IOS-导航路线_iphone导航

    1.可以将需要导航的位置丢给系统自带的APP进行导航 2.发送网络请求到公司服务器获取导航数据, 然后自己手动绘制导航 3.利用三方SDK实现导航(百度) >当点击开始导航时获取用户输入的起点和终点 2.根据服务器返回的路线信息自己绘制导航路线 代码1 1 // 2 // ViewController.m 3 // IOS_0403_利用系统App导航 4 // 5 // Created APP进行导航 103 // Items: 告诉系统地图APP要从哪到哪 104 // launchOptions: 启动系统自带地图APP的附加参数(导航的模式/是否需要先交通状况/地图的模式/..) alloc] init]; 113 } 114 return _geocoder; 115 } 116 117 @end 代码2 1 // 2 // ViewController.m 3 // IOS ) 133 // 传递当前路线的几何遮盖给地图, 地图就会根据遮盖自动绘制路线 134 // 当系统开始绘制路线时会调用代理方法询问当前路线的宽度/颜色等信息 135 [self.mapVIew addOverlay

    12820

    iOS原生地图开发指南再续——地图覆盖物的应用

    iOS原生地图开发指南再续——地图覆盖物的应用 一、引言 在前两篇博客中,将iOS系统的地图框架MapKit中地图的设置与应用以及关于添加大头针和自定义大头针的相关操作做了详细的介绍。 这篇博客中将进一步讨论关于地图添加覆盖物的使用方法。 二、添加地图覆盖物的逻辑原理 地图覆盖物其实就是在地图上画一些东西,例如路径,范围等等。添加地图覆盖物的逻辑原理其实和添加大头针很相似。 首先所有可以成为覆盖物的对象必须遵守MKOverlay这个协议,通过 - (void)addOverlay:(id <MKOverlay>)overlay; 将覆盖物添加在地图上,然后地图会调用代理方法 //初始化地图对象     MKMapView * _mapView = [[MKMapView alloc]initWithFrame:self.view.frame];     //设置地图

    19430

    ios开发-Storyboard在多个viewcontroller之间导航的实现

    IOS SDK6/Xcode4.5开始在Storyboad中新增很多功能对可视化的开发页面布局,导航更加方便,下面就写一下各种导航的实现。 1、不用像Xcode4之前必须删除默认的viewcontroller,然后拖一个navigation controller,然后才能实现导航。 2、下面实现导航最简单的就是next,back,只需要按住ctr直接拖线就好了,这里有一个Storyboard Segue-Identifier这个值最好填上,可以在代码里面用到 ? 2如果一个页面有个导航路径,需要通过代码判断导航到哪个目的viewcontroller也就是执行哪个Identifier,代码如下 ? 3、自定义导航,默认提供了,push,modal,popover,replace,还有就是custom,可以自定义class实现。 ? 下面自定义了一个Back功能的导航,代码如下 ? ?

    80650

    iOS开发UINavigation系列四——导航控制器UINavigationController

    iOS开发UINavigation系列四——导航控制器UINavigationController 一、引言         在前面的博客中,我么你介绍了UINavigationBar,UINavigationItem *navigationBar; //隐藏状态栏 @property(nonatomic,getter=isToolbarHidden) BOOL toolbarHidden NS_AVAILABLE_IOS //iOS7之后,在导航中右划会进行pop操作,设置这个的enable可以控制设置手势是否失效 @property(nullable, nonatomic, readonly) UIGestureRecognizer  *interactivePopGestureRecognizer; 四、iOS8后导航的新特性 //这个方法是为了iOS方法的命名统一,在导航中,其作用和push一样 - (void)showViewController :(UINavigationController *)navigationController NS_AVAILABLE_IOS(7_0); //下面两个方法可以对导航的转场动画进行设置 - (nullable

    58420

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关产品

    • 数据开发治理平台 WeData

      数据开发治理平台 WeData

      数据开发治理平台 WeData是位于云端的一站式数据开发治理平台,融合了包含数据集成、数据开发、任务运维的全链路DataOps数据开发能力,以及数据地图、数据质量、数据安全等一系列数据治理和运营能力,帮助企业在数据构建和应用的过程中实现降本增效,数据价值最大化。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券