2019独角兽企业重金招聘Python工程师标准>>>

前面我们配置好了SDK的环境,也在高德的官网中申请了AppKey:de5b39fb2b066ed80c51383bb3a1fe42,接下来我们就可以开始代码的编写,实现一个基本的地图显示了
代码配置显示地图(在开发指南中查看代码需要配置的内容)
1.配置appKey,一般在工程的入口配置[MAMapServices sharedServices].apiKey = @"用户Key";
导入头文件#import <MAMapKit/MAMapKit.h>
并在启动位置配置apiKey(这里需要使用到申请的appKey)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
 
   [MAMapServices sharedServices].apiKey = @"de5b39fb2b066ed80c51383bb3a1fe42";
   // Override point for customization after application launch.
   return YES;
}

2.在显示地图的界面调用以下代码显示地图
(1)导入头文件
<MAMapKit/MAMapKit.h>
(2)声明地图的协议<MAMapViewDelegate>
(3)添加地图的UI
 
 
 

3.运行工程,即可看到地图的基本显示
 

4.地图成功显示后,我们可以做一个定位,显示我们目前所在的位置
开启定位功能:
(1)在plist表单中加入字段请求允许访问用户的坐标
<一>
NSLocationWhenInUseUsageDescription当百度地图使用的时候可以获取用户坐标
<二>
NSLocationAlwaysUsageDescription不管百度地图是否在使用,都能获取用户坐标
(2)设置追踪用户目前的位置(在_mapView创建的地方编写即可)
_mapView.showsUserLocation = YES; 

//直接跟随到用户目前的界面
[_mapView setUserTrackingMode: MAUserTrackingModeFollow animated:YES];

//几种类型设置
typedef NS_ENUM(NSInteger, MAUserTrackingMode)
{
       MAUserTrackingModeNone              = 0,    // 不追踪用户的location更新
MAUserTrackingModeFollow            = 1,    // 追踪用户的location更新
MAUserTrackingModeFollowWithHeading = 2     // 追踪用户的location与heading更新
};
 

(3)在delegate中返回用户的坐标 
#pragma mark - 定位功能
-(void)mapView:(MAMapView *)mapView didUpdateUserLocation:(MAUserLocation *)userLocation
updatingLocation:(BOOL)updatingLocation
{
   if(updatingLocation)
   {
       //取出当前位置的坐标
       NSLog(@"latitude : %f,longitude: %f",userLocation.coordinate.latitude,userLocation.coordinate.longitude);
   }
}
(4)打印出目前用户的地址经纬度,即可通过经纬度设定当前的地图位置
        //制定地图的中心点,让地图显示在该点上
        CLLocationCoordinate2D coordinate2D = CLLocationCoordinate2DMake(latitudeGuangzhou, longitudeGuangzhou);
       
       _mapView.centerCoordinate = coordinate2D;

(5)注意事项:
在模拟器上,不能真实的定位你当成的坐标,所以必须在模拟器上设置一个虚拟坐标。
操作如下:
<1>选中模拟器
<2>在顶部栏中选择Debug
<3>选择Debug中的location
<4>设定location中的customLocation
<5>一般这里默认的是北京的紫禁城坐标,你需要先获取一个可用的坐标再给他赋值
<6>一般可用的坐标都需要使用地图的相应方法获取(这里简单的做法是有真机测试获取手机的真实坐标)
<7>这里提供一个广州的坐标
#define latitudeGuangzhou 23.176230
#define longitudeGuangzhou 113.340806


前面我们完成了地图的基本展示和定位,下面我们一起来发掘地图上的其他功能。这次我们来探索一下地图中的搜索功能。

1.使用搜索功能,需要再添加一个搜索功能库,这个库可以在高德的Demo文件中找到,添加到工程中可以直接使用

2.添加完framework库以后,就可以直接使用了搜索功能了(通过关键字进行搜索)
(1)导入头文件
#import <AMapSearchKit/AMapSearchAPI.h>

(2)导入使用到的协议 <AMapSearchDelegate>
 
(3)创建一个搜索类
<1>创建一个SeachAPI对象,传入参数:appKey和回调对象实现者声明
<2>创建一个搜索请求对象(设置请求的参数)
<3>搜索请求对象的属性设置(搜索模式,搜索地点关键字,搜索城市,是否返回拓展信息)

(4)在回调中获取搜索结果的信息
<1>回调中成功返回会有请求的对象信息和返回的对象信息
<2>先判断是否具有所搜索的对象,如果有搜多结果,则打印处理搜索出来的结果
<3>打印一些有用的结果参数

<4>返回对象AMapPOI中的一些基本属性(参数Model)

3.搜索功能的另外一种形式(通过区域中心范围搜索)
<1>同样需要创建_search对象
<2>在配置请求信息时设置的属性参数不同
<3>主要设置的搜索按照location返回搜索结果(经纬度设置)
<4>设置排序方式,使用按照距离远近排序(近的排在前面)

5.在搜索请求添加约束条件
<1>filter为request添加约束条件
<2>filter中的属性costFilter约束消费的平均范围
<3>属性AMapRequireGroupbuy设置搜索行业的信息(这里表明搜索全行业)

6.到这里,搜索功能就基本结束了,具体的其他功能,可以查看高德地图Demo中的MapViewPOI文件

接下来,需要了解一下高德地图中的大头针的简单使用,来标示出我们需要搜索的位置,和我们自己的位置

1.大头针的简单创建
(1)创建一个大头针的对象
(2)设置大头针的坐标位置
(3)设置大头针的文本提示语
(4)把大头针加入到数组中annotations为装载大头针的数组

(5)把大头针数组设置到mapView中
<1>设置mapView中的大头针数组
<2>显示加载到mapView中的大头针

 
2.大头针的自定义 
在mapView的回调中,有重新设定mapView大头针的方法
这里回调中给出了大头针对象和mapView对象
可以根据这两个参数生成一个大头针的view对象,返回给mapView,mapView将自动改变大头针的样式

(1)大头针的重用机制
这里使用的大头真重用机制与tableview中的重用机制相仿,当大头针拖拽出界面以后,大头真会被回收,用来显示别的大头针(这样可以使上千上万的大头针不需要一起加载到mapView中,只是现实界面中所需要显示的即可)

(2)大头针的样式改动
<1>canShowCallout:是否显示选中时的状态显示(显示设定好的标题)
<2>animatesDrop:拖动时是否具有动画
<3>draggable:是否支持拖动
<4>rightCalloutAccessoryView:显示在气泡右侧的view设定
<5>pinColor:大头针的颜色,有MAPinAnnotationColorRed, MAPinAnnotationColorGreen, MAPinAnnotationColorPurple三种
<6>注意:拖动需要长按大头针方可使用(在允许拖动的状态下)

转载于:https://my.oschina.net/gongzhiming/blog/637898

iOS 高德地图(二)(进阶具体使用的细节)相关推荐

  1. flutter引入高德地图_Flutter笔记-调用原生IOS高德地图sdk

    一.前言 2017年底因公司业务组合部门调整,新的团队部分维护的项目用React Native技术混合开发.为适应环境变化,开启疯狂RN学习之旅,晚上回来啃资料看视频.可能由于本身对RN技术体验不感冒 ...

  2. [iOS]高德地图SDK开发--准备篇

    本文是对高德地图SDK使用的总结,对于高德地图不做过多介绍,可直接登录其官网开放平台进行了解; PS: 这里主要是讲解地图使用的准备工作,最后,以显示地图并定位到当前位置来验证;对于其他的使用,可参看 ...

  3. iOS 高德地图开发详解

    Demo地址 如果有所帮助记得关注,点Star demo中添加了查看路况功能,如果不需要,可以删除. ##一:基本地图功能实现 ####1.申请密钥流程 申请密钥链接 2.配置环境(重点) 高德地图提 ...

  4. iOS高德地图使用笔记

    高德地图笔记 一 准备工作 1.前往高德官网,申请key,http://lbs.amap.com/ 2.导入高德SDK,使用cocopods  platform :ios, '7.0' #手机的系统 ...

  5. iOS高德地图路径选择

    新公司的一个物流项目用到了高德地图的路径规划导航.之前没用过高德的路径规划,最麻烦的是画出路径,以及多路径情况下的点击选择路径. 其实画出路径的算法在高德地图的相关demo里面有,只要抠出来就行.我要 ...

  6. iOS 高德地图处理左下角小图标

    1.设置小图标的位置 _mainMapView.logoCenter = CGPointMake(110, 10); 这个可以设置坐标,但是这个方法只限定坐标在可见范围之内,所以这个方法是调整小图标位 ...

  7. iOS高德地图 多个大头针显示图片 点击效果

    最近做一款有关地图的软件  使用到了高德地图  将一些经验记录下来 第一篇博客  以后会陆续更新 希望看到的朋友多多支持啦. 导入等过程PASS掉. 新建一个类  继承 MAPointAnnotati ...

  8. iOS 高德地图 百度地图 以及苹果自带的地图URI的使用 以及CLLocationManager的使用

    1.CLLocationManager的使用 1.首先Xcode导入一个自己带的官方头文件在任意一个类.h #import<MapKit/MapKit.h> 并遵守两协议 <CLLo ...

  9. IOS 高德地图获取用户导航路径

    标题 最近项目里有一个需求,用户开始导航之后,要将导航的路径传到服务器,在另一个客户端显示所有用户的导航路径. ## 思路 ## 要实现这个功能,最关键的一点就是当用户导航之后如何取到路径.笔者是用的 ...

最新文章

  1. kafka-2.11-2.3.0版本配置文件参数详解_Kafka版本特性总结
  2. Matlab200以内所有质数,Matlab 中求质数表
  3. 【Deep Learning笔记】常用的激活函数
  4. java mvc 获取session_Spring MVC----获取session/request
  5. 基于 FPGA 的数字抢答器设计
  6. redis核心技术与实战(四)高可用高扩展篇
  7. C#中结构体排序方法(Array.sort() + ICompare)
  8. Android学习笔记---26_采用JSON格式返回数据给资讯客户端,效率上要高于xml文件解析和传输
  9. 计算机视觉目标检测算法总结5——RCNN系列算法
  10. 肌电信号 聚类 Matlab
  11. np.multipy()函数解读
  12. 微星z370安装linux系统,微星Z370-A PRO主板u盘装系统win10教程
  13. iOS7官方推荐图标和图像尺寸
  14. MiCT: Mixed 3D/2D Convolutional Tube for Human Action Recognition论文笔记
  15. 《Erlang/OTP并发编程实战》第八章 分布式 Erlang/OTP 简介
  16. php compress.zlib_compress/zlib(压缩/zlib)
  17. 如何在微信小程序中下载APP?
  18. WPS表格如何隔行填充颜色
  19. 【小沐学C++】C++17实现文件操作<filesystem>
  20. 数字VR虚拟博物馆的功能介绍

热门文章

  1. 扎克伯格“致敬”微信,但Facebook Pay能像微信支付一样成功吗?
  2. 本题要求对两个整数a和b,输出其中较大的数。
  3. 桩基施工市场现状研究分析报告-
  4. Unity透明度不叠加
  5. [TCP灵魂之问]介绍一下 TCP 报文头部的字段
  6. Espresso自动化测试(十一) - IdlingResource
  7. android使用fir.im实现版本更新
  8. 小型电商平台的项目估算
  9. 非线性规划:实例与matlab应用
  10. EagleEye简介:户外视频监控分析和面部识别软件