在iOS开发中,地图也是很多App都需要使用的功能。本文主要对iOS中的地图知识点进行介绍。需要说明的是地图看似很复杂,其实它仅仅是一个控件,就和UIButton、UITableView等一样。...一、理论知识 地图既然是控件,就可以在StoryBoard和代码中使用 地图上如果想要显示用户的位置,必须与定位配合,那么就需要创建定位管理器、设置权限等,可以参考iOS开发之定位,同时需要设置地图的属性...StoryBoard中添加地图控件 拖拽IBOutlet 声明CLLocationManager 声明权限 设置gpx数据 二、地图基本使用 实现功能:显示地图,并且显示用户所在的位置,点击用户的位置...实现效果 三、地图缩放级别 实现功能:在之前功能的基础上实现地图的任意视角(“缩放级别”) 代码 @interface ViewController ()...实现效果 四、添加标注 功能:点击屏幕,可以添加标注 说明:添加标注分三步 创建标注模型 重写地图的代理方法,返回标注的样式 将标注添加到地图 代码 标注模型 @interface MyAnnotation
由于项目需要地图功能,公司决定使用百度地图,但是百度地图也有很多问题,现在总结一下在百度地图中遇到的坑,希望给各位看官一点参考,避免走一些弯路.我使用的百度地图SDK2.9.1. iOS地图SDK链接,...只在iOS 9.0之后起作用 if ([[UIDevice currentDevice].systemVersion doubleValue] >= 9) { _locService.allowsBackgroundLocationUpdates...[[CLLocationManager alloc] init]; } return _mgr; } 当然如果觉得这种处理不好,可以再想其他解决办法~ (四)关于app切换到后台产生的问题...如果采用方式2的话,就会避免这种问题....,用法和百度地图非常相似,尤其是高德地图,更是相似,很多地方都是把前缀换一下就OK了,其他代码都不用改,但是有个别地方还是有区别的,比如说百度地图的paopaoView,高德地图和百度地图是不一样的.
重点参考链接: IOS之地图和定位应用开发 http://www.cnblogs.com/syxchina/archive/2012/10/14/2723522.html IOS开发之百度地图API应用...tid=217107 (Good)IOS之地图和定位应用开发 http://www.cnblogs.com/syxchina/archive/2012/10/14/2723522.html IOS开发之百度地图...API应用 http://www.cocoachina.com/ios/20120507/4224.html iOS开发那些事-iOS6苹果地图实用开发 http://blog.csdn.net/tonny_guan.../article/details/9239947 [IOS地图开发系类]2、位置解码CLGeocoder http://my.oschina.net/chengliqun/blog/147871 ios6.../totogo2010/article/details/7701026 iOS地图位置开发方法 http://wenku.baidu.com/link?
MKMapView类主要是完成下述功能: 1、显示地图,比如:显示北京市的地图; 2、提供多种显示方式,比如标准地图格式,卫星地图等; 3、支持地图的放大缩小; 4、支持在地图上做标记,比如标记天安门广场...转换成功 -(void)reverseGeocoder : (MKReverseGeocoder *)geocoded didFailWithError:(NSError *)error; //转换失败 iOS...CLLocationManager locationServicesEnabled]) { NSLog(@"设备尚未打开定位服务"); } //判断当前设备版本大于iOS8..._mapView.mapType = MKMapTypeStandard; // 不显示罗盘和比例尺 if (@available(iOS 9.0, *...leftCalloutAccessoryView = iconView //自定义图钉颜色 IOS9+ annotationView?.
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.大头针标注 地图标注在开发中经常使用
无论是QQ还是微信的移动客户端都少不了定位功能,之前在微信demo中没有添加定位功能,今天就写个定位的小demo来了解一下定位和地图的东西。...地图和定位看上去是挺高大上一东西,其实用法比TableView简单多了,下面的Demo是用的iOS中自带的地图和定位,当然了也可以用第三方的来加载地图,比如百度地图啥的,在这就不赘述了。...一,构建Demo的组件 为了节省时间这个demo中的MapView是用Storyboard拖出来的,storyboard中的结构如下所示,上面是MKMapView用于显示地图,下面的labei用于显示当前经纬度...NSDictionary *addressDictionary = placeMark.addressDictionary; 34 35 36 //添加地图的标注
定位 CoreLocation 是 iOS 中用于设备定位的框架。通过这个框架可以实现定位进而获取位置信息如经度、纬度、海拔信息等。...精度控制 iOS 14 新增了一种定位精度控制,在定位授权对话框中有一个精度切换开关,可以切换精确和模糊定位(默认精确)。...除了可以显示地图,还支持在地图上进行标记处理。...地图上如果想要显示用户的位置,必须与定位配合,那么就需要创建定位管理器、设置权限等(参考定位知识),同时需要通过 storyboard 或者代码设置地图的相关属性。...MKMarkerAnnotationView:iOS 11 推出,建议使用。
概述 关于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
关于导入百度地图SDK出现的问题(二) ---- 原帖地址 ---- 1.百度地图开发中添加标注[_mapView addAnnotations:annotations]与[_mapView addAnnotation...: annotation] 的不同 /** *向地图窗口添加标注,需要实现BMKMapViewDelegate的-mapView:viewForAnnotation:函数来生成标注对应的View *...@param annotation 要添加的标注 */ - (void)addAnnotation:(id )annotation; /** *向地图窗口添加一组标注,...interactivePopGestureRecognizer)]) { self.interactivePopGestureRecognizer.delegate = weakSelf; } } ---- iOS7...这其实是objc开发的问题了,不算百度SDK的问题。 下面是 demo 下载地址: github 下载地址
关于导入百度地图SDK出现的问题(一) ---- 原帖地址 1.MKAnnotationView和MKPinAnnotationView的区别....NSInvalidUnarchiveOperationException’,reason ‘Could not instantiate class named MKMapView’ 解决办法:如果sotoryboard中用到了地图...,必须手动导入框架MapKit.framework. ---- 4.使用百度地图api不显示当前位置的蓝点,如下代码 - (void)viewDidLoad { [super viewDidLoad]...userLocation.location.coordinate.latitude, userLocation.location.coordinate.longitude); } } ---- 5.百度地图
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
在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 总结 三种不同的定位,都可以实现定位,开发时请根据不同的需求选择不同的定位方式
在项目中遇到一个问题,百度地图标注很多而且密集的时候,当我们点击其中一个标注的时候如图 ?
iOS原生地图开发指南再续——地图覆盖物的应用 一、引言 在前两篇博客中,将iOS系统的地图框架MapKit中地图的设置与应用以及关于添加大头针和自定义大头针的相关操作做了详细的介绍。...这篇博客中将进一步讨论关于地图添加覆盖物的使用方法。 二、添加地图覆盖物的逻辑原理 地图覆盖物其实就是在地图上画一些东西,例如路径,范围等等。添加地图覆盖物的逻辑原理其实和添加大头针很相似。...首先所有可以成为覆盖物的对象必须遵守MKOverlay这个协议,通过 - (void)addOverlay:(id )overlay; 将覆盖物添加在地图上,然后地图会调用代理方法...//初始化地图对象 MKMapView * _mapView = [[MKMapView alloc]initWithFrame:self.view.frame]; //设置地图
BMKAnnotationView.h> @interface MyAnnotationView : BMKAnnotationView /** * 创建方法 * * @param mapView 地图...[UIImage imageNamed:@"icon_green"]; } @end 之后在控制器文件中,首先要先从服务器获取数据,取到数据后,根据经纬度坐标,也就是一个个的Annotation显示到地图上...BMKActionPaopaoView alloc] initWithCustomView:detailView]; // 返回大头针 return annoView; } 才能将annoView显示到地图上...BMKMapViewDelegate会有如下方法: -(void)mapView:(BMKMapView *)mapView didSelectAnnotationView:(BMKAnnotationView *) 我在开发过程中
路线规划 示例程序 使用百度地图SDK版本为2.9.1。...*sheet = [[FMActionSheet alloc] initWithTitle:@"导航方式" buttonTitles:[NSArray arrayWithObjects:@"用手机自带地图导航...", @"百度地图", nil] cancelButtonTitle:@"取消" delegate:(id)self]; sheet.tag = 103...actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{ if (buttonIndex == 0) { //打开系统自带的地图...[self openIOSMapNav]; } else if (buttonIndex == 1) { //打开百度地图客户端导航 [self
1、git clone 提示:fatal: Authentication failed for “someurl” 这个问题可能因为你访问的不是公开项目,需要输入密码,但也不一定,有时公开项目也会输入密码...httpcode = 200 则将https改成git,先clone只读的仓库 然后进入仓库目录,修改目录下的.git/config中的url,将git改成https 这样修改后就能push了 如果团队开发...,且项目是私有的,直接git clone发现clone不下来,那应该看看是不是添加你为开发者,如果这个项目组中国没有添加你,那么你就不能clone,
①导入框架 ②导入主头文件 #import ③MapKit框架使用须知 MapKit框架中所有数据类型的前缀都是MK MapKit有一个比较重要的UI控件,专门用于地图显示...④MapKit框架包含CLLocation 2.设置地图的类型 可以通过设置MKMapView的mapType设置地图类型 typedef enum : NSUInteger { MKMapTypeStandard...注意:在iOS8中, 如果想要追踪用户的位置, 必须自己主动请求隐私权限 在CLLocation框架中CLLocationManager请求授权 利用MapKit获取用户的位置, 可以追踪 userTrackingMode...- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated; //地图的区域改变完成时调用 设置地图显示区域...,和经纬度跨度 ①通过MKMapView的下列方法,可以设置地图显示的位置和区域 // 设置地图的中心点位置 @property (nonatomic) CLLocationCoordinate2D centerCoordinate
初始化地图 定义可以拖控件连线或者代码定义 //设置地图类型 appMapView.mapType = MKMapType.Standard; //是否显示自己位置,设置true会一直定位 appMapView.showsUserLocation
**class**); intent.startActivity(intent); 路由跳转方式 iOS: [Router openURL:@"xxx://xxx.com/live/player?...withString("key3", "888") .withObject("key4", new Test("Jack", "Rose")) .navigation(); 优点:路由解决的问题...统一iOS,Android端的跳转逻辑。 App复杂后组件化后,组件间解耦。 统计埋点可以通过路由进行,因为路由是一个中间件,所以对路由进行AOP就行。...如:web网页要打开一个原生页面,如果要iOS跟Android用同一个url的话,他们都得用我们的类名。耦合太大。 第三种:URL跟ViewController一一对应,同时统一处理跳转。...方案选择 我们最后选择了第三种方案,实际集成的时候还是有好多其它的问题。这里列举一些: 结果回传:有些viewController打开后,要给上个vc返回一个值,如:地址选择页面等。
领取专属 10元无门槛券
手把手带您无忧上云