时尚

当前位置:手机版美高梅网站 > 时尚 > 什么支付三个简便的百度地图,百度地图才能大

什么支付三个简便的百度地图,百度地图才能大

来源:http://www.best-sclae.com 作者:手机版美高梅网站 时间:2019-11-14 17:45

在优亿开放日上,我们邀请过众多产品、运营方面的专家,但是工程师可能比较少一点,这次的活动,我们很高兴请到了百度地图高级研发工程师游东。游东具有四年以上的地图和导航开发经验,目前主要负责百度地图的SDK研发工作。在技术和开发上肯定是亲临第一线的高手。

地图集成调研

主要地图API有百度地图高德地图腾讯地图、搜狗地图(android、IOS暂不开放)。

各位小伙伴们大家好,今天我向大家介绍一下苹果百度地图的使用方法,因为做过一些想关的APP,感觉百度地图还是挺方便的。

  我们整理了游东先生的演讲,希望给广大开发者提供实实在在的帮助。

百度地图

首先我们先创建一个工程,创建好了之后,我们继续来看一下百度地图的开放平台

  一、百度地图介绍:高端手机实现陀螺仪导航

 功能

  1. 地图SDK

  - 普通地图(2D,3D)、卫星图和实时交通图

 - POI检索  支持周边检索、区域检索、城市内检索和Place详情信息检索。

- 地理编码  地理坐标和地址之间相互转换的能力。

- 路线规划  支持公交信息查询、公交换乘查询、公交/驾车/  骑行/步行线路规划。

- 地图覆盖物 支持多种地图覆盖物 定位图层、地图标注(Marker)、几何图形(点、折线、弧线、多边形等)、地形图图层、POI检索结果覆盖物、线路规划结果覆盖物、热力图图层、瓦片图层等。

- 离线地图 用户可以通过SDK在线下载离线包接口,下载离线地图包

- 调启百度地图    利用SDK接口,直接在本地打开百度地图客户端或WebApp,实现地图功能。支持调启的功能有:POI周边检索、POI详情页面、步行线路规划、驾车线路规划、公交线路规划、驾车导航、步行导航、骑行导航。

- LBS云  使用LBS云,可以实现移动开发者存储海量位置数据的服务器零成本及维护压力,且支持高效检索用户数据,且实现地图展现。

- 个性化地图和特色功能  支持使用个性化地图模板,改变底图颜色和样式。 短串分享、Place详情信息检索、热力图等。

  1. 定位SDK

综合网络定位、离线定位功能、反地理编码+位置语义、室内高精度定位

  1. 鹰眼轨迹SDK

用于移动设备的轨迹追踪应用,轻松实现实时轨迹追踪、历史轨迹查询、地理围栏报警等功能。

  1. 导航SDK

GPS导航、路线全览、文字导航、语音播报、HUD夜间模式、实时路况、自定义图层

  1. 全景SDK

提供全景图的检索、显示和交互功能

4166金沙手机官网 1

  我们可以看到百度这一块对SDK重视还是比较大,我们的迭代版本速度也是比较快。一般来说一个小版本是一个月左右,如果大版本升级可能三个月左右的时间。iOS这边据我们统计,用户量不是特别大,所以iOS这块版本升级会慢一些。但是现在两个版本没有太大差异,基本功能完全一样。需要说明一点,大家现在有没有用到百度手机地图客户端,我们最新手机地铁可能是3G的时尚版本,我们SDK版本现在还是上个版本,在用户体验上还不太一致。不过,我们后面会有一些计划去增加版本的内容创新。

高德地图

点击上面个的开发,然后选择下面的ios地图SDK,进去之后我们会看到百度地图的概述:

  我们的支撑平台,可以看到是基于Android1.5最低版本,基本上所有Android设备都可以适配。可以看到我们SDK功能主要是提供地图浏览,包括实时交通,卫星图。自定义覆盖物,比如用户要添加一些自己独特的地标在地图上,比如合作伙伴去哪儿,在他们地图上就会加入酒店,检索周边有哪些酒店,就会标上当前价格,这些都可以用户自定义控制。

功能

  1. 地图SDK

开发者可以轻松地开发出地图显示与操作、室内外一体化地图查看、兴趣点搜索、地理编码、离线地图等功能。

  1. 定位SDK

一套简单的LBS服务定位接口,您可以使用这套定位API获取定位结果(包括全球定位、辅助H5页面定位功能)、逆地理编码(地址的文字描述)、以及地理围栏(进入圆形范围、会有提示)功能。

  1. 云图SDK

云检索,提供海量位置数据的服务器零成本存储,支持高效检索用户自有数据以及地图展现,目前支持ID搜索、周边搜索、多边形搜索和本地搜索四种方式。

  1. 导航SDK

是一款针对在线导航的产品,包括路径规划、模拟导航、GPS定位、自定义导航界面、获取导航播报信息等。

  1. 室内地图和室内定位SDK

开发者可以轻松地开发出室内地图显示与操作、兴趣点搜索、室内路线规划等功能。通过基于WIFI、蓝牙以及PDR的室内定位技术,可实现平滑的1-8米的定位效果和精度。

(地图都是一些简单的功能,只能进行一些查看的简单操作)

  然后是一些基础搜索服务,比如POI,路线,地力,反地理编码之类。我们定位服务,精度如果Wi-Fi情况下200米左右,基站情况下500米以内。高端手机,基本上具备了陀螺仪,我刚刚来的时候在路上拿着手机导航过来,在走路的时候陀螺仪会标注你的方向,这样在行动过程中定位用户体验会非常好,基本上只需要通过基站就能够达到类似于GPS的精度用户体验感受。第五点就是一个离线地图。我刚刚说到现在SDK这个离线地图,跟我们百度地图手机客户端产品相比较,数据会旧一点,我们也会考虑进行升级。

成功案例

快的打车 神州专车

陌陌 新浪微博

淘宝 天猫

提供地图展示和地图操作功能

  二、设计思路:功能盖过谷歌

腾讯地图

· 地图展示包括:普通地图、卫星图和实时交通图;

       4166金沙手机官网 2  

 功能

  1. 地图SDK:提供地图的展示、标注、绘制图形等功能。

  2. 检索SDK:提供poi检索、地理编码、坐标转换、路线规划等功能。

  3. 定位SDK:采用GPS、WIFI、基站等定位

  4. 街景SDK:提供腾讯街景的展示,支持标注功能。

· 地图操作:可通过接口或手势控制来实现地图的点击、双击、长按、缩放、旋转、改变视角等操作。

  我们的设计思路,一个是功能完整。百度SDK跟Google相比较,我们的功能完全能够做到,对方有的我们都有,性能满足也会做一些性能方面测试。使用方便,我们的接口设计,还是有一点参考,相对于Google地图来说,或者相对于iOS来说,百度尽量考虑开发者便利性,如果从第三方图上API切换过来,接口尽量减少。百度在发布之前会做严格测试,比如24小时不间断使用,搜索上万个Case,有5万以上Monkey测试。在性能方面,跟手机地图产品保持一致,百度地图SDK内核跟百度产品内核是一致的,都是用同一套内核。

成功案例

微信 QQ 腾讯微博 滴滴打车

4166金沙手机官网 3

         4166金沙手机官网 4  

功能区别

百度地图 功能较齐全,具有鹰眼轨迹SDK

高德地图 无全景街景功能

腾讯地图 无离线地图、导航、LBS云等功能 不支持短串分享

(POI检索主要是对周边或者某个城市,还有一些商家商店,景点地址等搜索)

  在应用型设计,可以看到我们设计的这几个API类,MapView都是GoogleAPI都有的。在搜索,我们都是基于接口调用立刻返回得到的结果。如果要使用百度开发的SDK,首先要到我们官网申请一个API Key,只需要填上你的名字。把我们SDK的两个包导入到对应位置,因为我们的内核可能是基于C++开发。在应用Manifest里面增加一些SDK使用权限,比如获得Wi-Fi的能力,就可以在这个里面进行展示地图内容。
          4166金沙手机官网 5  

 集成

集成难易程度相当,百度、高德文档讲解更详细

注意:腾讯地图集成为了兼容6.0的权限管理,所以必须使用23以上的support library

支持周边检索、区域检索、城市内检索和Place详情信息检索。

  这里说明一点,如果没有展示地图的需求,你也可以有我们的包,只需要使用检索接口,有可以获得检索内容,或者只用定位接口,也可以获得定位的内容,坐标,这不是强制的。你的HML里面配备MapView,我们有一个核心类,其他第三方没有,百度地图的所有功能都是基于这个BMapManager,这是一个官能管理类。BMapManager的使用放到onCreate就可以进行使用。这里有几个使用约定,我们SDK只基于主线程里使用,我们后续也会考虑改进。MapView是一个单实例,我们底图提供一些基础信息,比如道路街道,学校,公园,实时交通信息非常简单。
        4166金沙手机官网 6  

集成前相关工作

·周边检索:以某一点为中心,指定距离为半径,根据用户输入的关键词进行POI检索;

  覆盖物是一个很重要的使用场景,大家会基于自己需求定制你的地图上的标注,根据我们提供现有类,比如这是你当前位置,不需要你自己做改动,我们自己已经添加一些资源在里面,就可以显示你当前位置和误差半径在里面,还有个路线公交查询,调用相关的Overlay,就可以把路线显示在地图上。可以看一下这个效果,这是MyLocationOverlay,显示的当前位置和路径半径。在使用的时候,你会注意到,可以设置传感器,如果有这个传感器,题愿意打开,这样在行动过程当中用户体验会更好一些。
     
        4166金沙手机官网 7

百度地图

1.注册百度账号

2.创建应用获取APPkey(应用的包名 签名证书的sha1)

·区域检索:在指定的矩形区域内、根据关键词进行POI检索;

        4166金沙手机官网 8

高德地图

1.注册开发者账号

[个人开发者与企业开发者区别](https://link.jianshu.com?t=http://lbs.amap.com/dev/key#/account/permission)  (公司的注册号、营业执照)

例如 个人开发者的搜索功能日调用配额只有1000次

2.创建应用获取APPkey  (应用名+应用场景 应用的包名 发布版安全码:SHA1 调试版安全码SHA1)

·城市内检索:在某一城市内,根据用户输入的关键字进行POI检索;

 转载至:炒股风暴 http://aiwgame.com  

腾讯地图

1.注册账号

2.创建应用获取Key

·Place详情检索:根据POI的ID信息,检索指定POI点的Place详情数据。

  我们现在提供搜索服务,基本上是一些比较基础的服务在里面。现在,产品这边已经上了用户的详细信息数据,现在这块SDK暂时还没有加,后期还会有计划。在调用搜索接口的时候,可以看到比如要搜索肯德基,输入中间一个坐标,根据那个PoiOverlay坐标,搜索附近范围内就会有一个图标,如果搜索到结果就会通知你,你可以带这个接口里面进行处理,这样就可以显示地图上面,这个标注都是我们SDK提供好的,不需要你自己做设置,这是查询路线的。
        4166金沙手机官网 9  

4166金沙手机官网 10

  搜索内部也只有一个实例,不能同时发起几个搜索。搜索可以支持多关键字,比如搜索多个类型,可以搜宾馆,也可以搜车站,会一次性反馈给你几个搜索,你加入的关键字可以在回调里面进行处理。当然,我们服务器里面有压力考虑,你保证最好反馈结果控制在50以内,你是所有结果,比如一个关键字就能返回10个,两个关键字,最好只设5个关键字,这样就可以返回50个,当然不能设太多,服务器在计算的时候会有一些压力,就会导致搜索失败的情况。
          4166金沙手机官网 11  

(地理编码的功能就是根据已个地址名得到它的坐标,或者根据坐标得到地址的名称,比如我们定位之后,会获取到我们位置的坐标,然后根据坐标得到我们位置的一些信息,或者来获取周边的一些信息等)

  定位服务,定位是由网络,GPS,Wi-Fi,是一个混合定位,如果只有Wi-Fi也可以,也是通过注册回调里面获得结果。盖有一个地图包,我们提供官网地图,直接放到SD卡目录的BaiduMapSDK里面,你就不需要做太多扫描,第一次扫描之后会做一些文件修改,进行识别,到处的是正确地图。当然,有些用户会反馈,为什么扫描错误几次之后会错误,实际上已经扫描成功了。
        4166金沙手机官网 12  

提供地理坐标和地址之间相互转换的能力。

  我们的离线地图包也是可以支持多个应用共享,如果多个应用都用了SDK,只需要一个地图包就可以了。现在这块SDK计划,我们后期产品也正在开发过程当中,后期会支持P7的SDK。我们现在SDK有一些用户也会反馈,对于个别用户来说不是特别灵活,对于他们来说地图开发包体积太大,我们后面也会考虑尽量精简,或者做成一个可配置的灵活包,用户根据自己需求去配置他吸需要的一些功能,我们后期会支持地图矢量化,包括我们看到3D效果也会进行扩展。

·正向地理编码:实现了将中文地址或地名描述转换为地球表面上相应位置的功能;

  当然,矢量地图量比较小,从我们现有掌握数据来说开发者并不太在意这块,我们产品这块数据量减少90%以上。我们AP资源可以到我们官网,微博上面关注,或者贴吧上面,我们也可以及时反馈。最后做一个广告,现在LBS还在招人,如果开发者有兴趣可以过来面试一下,还有机会成为同事,谢谢大家。

·反向地理编码:将地球表面的地址坐标转换为标准地址的过程。

  编辑对技术不是太懂,游工程师的讲解远远多于小编整理的,感兴趣的朋友可以在这里下载完整的PPT;喜欢百度地图的朋友请点击这里,或者加微博。

4166金沙手机官网 13

(线路规划就是当我们需要去某个地方,我们进行搜索之后就会在地图上显示出一条路线来指示我们)

4166金沙手机官网 14

支持公交信息查询、公交换乘查询、驾车线路规划和步行路径检索。

·公交信息查询:可对公交详细信息进行查询;

·公交换乘查询:根据起、终点,查询策略,进行线路规划方案;

·驾车线路规划:提供不同策略,规划驾车路线;

·步行路径检索:支持步行路径的规划。

4166金沙手机官网 15

(调起百度地图,就是在我们自己的App里直接跳到百度地图的App,如果我们安装了百度地图就会开启百度地图App,如果我们没安装百度地图App那么它就会在浏览器里打开百度地图)

利用SDK接口,直接在本地打开百度地图客户端或WebApp,实现地图功能。 目前支持调启的功能有:POI周边检索、POI详情页面、步行线路规划、驾车线路规划、公交线路规划、驾车导航。(具体请参考开发指南中,计算工具章节内的介绍)

4166金沙手机官网 16

采用iOS系统定位,使用地图SDK中我的位置图层进行丰富的位置展示(包括普通态、跟随态和罗盘态)。

4166金沙手机官网 17

上面都是是我们开发中常用到的一些功能,下面的的功能用的不是特别多

支持多种覆盖物图层,便于显示POI检索结果、线路规划结果、自定义标绘等。 此外还提供特有的图片图层,用于显示用户传入的图片信息。开放热力图绘制能力,通过用户自有数据,绘制属于自己的热力图。 瓦片图层,支持开发者添加自有瓦片数据

用户可以通过SDK在线下载离线包接口,下载离线地图包,使用离线地图可节省用户流量,提供更好的地图展示效果

周边雷达功能,是面向移动端开发者的一套SDK功能接口。同步支持Android和iOS端。它的本质是一个连接百度LBS开放平台前端SDK产品和后端LBS云的中间服务。开发者利用周边雷达功能,可以便捷的在自己的应用内,帮助用户实现查找周边跟“我”使同样一款App的人,这样一个功能。

百度地图LBS云是百度地图针对LBS开发者全新推出的平台级服务,不仅适用PC应用开发,同时适用移动设备应用的开发。 使用LBS云,可以实现移动开发者存储海量位置数据的服务器零成本及维护压力,且支持高效检索用户数据,且实现地图展现。

特色功能包括:短串分享、Place详情检索等。

·短串分享:将POI搜索结果或反地理编码结果生成短串,当其他用户点击短串即可打开手机上的百度地图客户端或者手机浏览器进行查看。

·热力图绘制:根据用户自有数据,提供相应绘制接口,实现热力图本地绘制;

·Place详情检索:根据POI的ID信息,检索指定POI点的Place详情数据。

自v2.10.0起,支持使用个性化地图模板,改变底图颜色和样式。

·使用个性化模板,实现地图元素的颜色设置,地图元素包含大地、水系、草地、高速、普通道路、铁路、地铁,poi等,以及poi和道路的文字颜色设置。

·通过可见属性,控制显示地图元素。

自v3.0版起,百度地图SDK室内图功能正式上线,辅助开发者实现全新的地理位置服务体验,室内地图与百度地图App同步更新。

·支持的公众建筑包含购物商场、机场和火车站等交通枢纽,医院等,覆盖全国约600个大型购物中心,覆盖类型和城市还在持续增加中。

这些都是一些常用的基本功能,下面我们继续看开发的过程:

首先我们先获取秘钥,获取秘钥我们就必须要登录百度账号,我们可以用QQ、微博、微信或者直接注册一个账号,登录之后呢直接点击获取秘钥,然后我们会看到,如图:

4166金沙手机官网 18

需要我们注册开发者,我们在这填写上姓名,手机号邮箱之后,就可以了,因为我有一个我就直接用我现在的了,直接登录进入到申请密钥的界面,可以看到我这里面

百度地图iOS SDK开发密钥的申请地址为:

4166金沙手机官网 19

创建了有很多应用,然后我们点击左边上面的创建应用,创建一个新的应用方便我们演示;

我们先起个名字,百度地图Demo,然后点击下面的应用类型,选择ios SDK,然后继续选择下面的启用服务,一般用不到的我们会勾选掉,然后继续下面填写安全码,说一下可能第一次用百度地图的小伙伴不知道这个安全码在哪找,其实这个安全码是在我们创建的项目工程里的Bundle identifier,如图:

4166金沙手机官网 20

根据顺序选则,上面选中的就是我们的安全码,直接拷贝到我们的创建百度应用里面,最后直接提交,就可以了。

4166金沙手机官网 21

创建完应用之后我们会获取到一个访问应用的APK

如图:

4166金沙手机官网 22

这就是我们代码里所需要的,一会我们会把他粘贴到我们的工程项目里;

下面我们继续看,首先我们来先看一下简介:

主要介绍了什么是百度地图ios SDK,基本功能我们上面已经说过了,还有适用的对象,以及获取定制的的SDK和兼容性

百度地图iOS SDK是一套基于armv7、armv7s、arm64(自v2.5.0版本)处理器设备的应用程序接口,不仅提供构建地图的基本接口,还提供POI搜索、地理编码、路线规划、定位、本地覆盖物绘制、周边雷达等服务,自v2.0.0开始为矢量渲染的3D地图,并新增了矢量离线地图下载功能接口。

自v2.7.0版本开始,iOS 地图SDK向广大开发者提供了 .framework形式的开发包,此种形式配置简单、使用方便,请广大开发者使用。自2.9.0版本起,iOS 地图SDK不再提供 .a形式的开发包!

您可以使用百度地图iOS SDK开发适用于移动设备的地图应用,通过接口,您可以轻松访问百度服务和数据,构建功能丰富、交互性强的地图应用程序。百度地图iOS SDK提供的功能如下:

地图:提供地图展示和地图操作功能;

室内图:提供展示公众建筑物室内地图的展示功能;

POI检索:支持周边检索、区域检索和城市内兴趣点检索;

室内POI检索:支持设置城市和当前建筑物的室内POI检索;

地理编码:提供经纬度和地址信息相互转化的功能接口;

线路规划:支持公交、驾车、步行、骑行,四种方式的线路规划;

覆盖物图层:支持在地图上添加覆盖物(标注、几何图形、热力图、地形图图层等),展示更丰富的LBS信息;

定位:获取当前位置信息,并在地图上展示(支持普通、跟随、罗盘三种模式);

离线地图:使用离线地图可节省用户流量,提供更好的地图展示效果;

调启百度地图:利用SDK接口,直接在本地打开百度地图客户端或WebApp,实现地图功能;

周边雷达:利用周边雷达功能,开发者可在App内低成本、快速实现查找周边使用相同App的用户位置的功能;

LBS云检索:支持查询存储在LBS云内的自有数据;

瓦片图层: 支持在地图上添加自有瓦片数据。

特色功能:提供短串分享、Place详情检索、热力图等特色功能,帮助开发者搭建功能更加强大的应用;

开发者可在百度地图iOS SDK的下载页面下载到最新版的地图SDK,下载地址为:

为了给开发者带来更优质的地图服务、满足开发者灵活使用SDK的需求,百度地图SDK自v2.3.0起,采用了可定制的形式为用户提供开发包。百度地图SDK按功能可分为:基础地图、检索功能、LBS云检索、定位功能、计算工具、周边雷达六个部分,开发者可根据自身的实际需求,任意组合这六种功能,点击下载页面的“自定义下载”,即可下载相应的开发包来完成自己的应用开发。

基础地图:包括基本矢量地图、卫星图、实时路况图和各种地图覆盖物(POI搜索结果图层、路线图层、自定义图层、几何图形绘制图层、地形图图层、热力图、瓦片图层等),此外还包括各种与地图相关的操作和事件监听;

检索功能:包括POI检索(周边、区域、城市内),Place详情检索,行政区域检索,公交信息查询,路线规划(驾车、步行、公交、骑行),地理编码/反地理编码,在线建议查询,短串分享等;

LBS云检索:包括LBS云检索(周边、区域、城市内、详情);

定位功能:获取当前位置信息;

计算工具:包括计算两点之间距离、计算矩形面积、坐标转换、调启百度地图客户端、判断点和圆/多边形位置关系、本地收藏夹等功能;

周边雷达:包含位置信息上传和检索周边相同应用的用户位置信息功能;

注:本套开发指南是针对默认的全功能包编写,开发者在使用定制化的SDK进行开发时,请参考开发指南中相对应的章节或从相应开发包中的readme文档获取更多信息。

百度地图iOS SDK支持iOS 5.0及以上操作系统,支持armv7、armv7s、arm64(自v2.5.0版本)处理器。

下面再来说一下关键的部分,注意事项跟开发环境的配置,我在第一次开发这个百度地图的时候出现了一些问题,大部分都是因为注意事项这里有的没有改,从而导致了项目没有跑起来。

1、静态库中采用ObjectC++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm),或者在工程属性中指定编译方式,即在Xcode的Project -> Edit Active Target -> Build Setting 中找到 Compile Sources As,并将其设置为"Objective-C++"

2、如果您只在Xib文件中使用了BMKMapView,没有在代码中使用BMKMapView,编译器在链接时不会链接对应符号,需要在工程属性中显式设定:在Xcode的Project -> Edit Active Target -> Build Setting -> Other Linker Flags中添加-ObjC

3、授权Key的申请:新、旧Key之间不可通用,即新Key只可以使用在v2.0.2及后续版本的SDK中,旧的Key只适用于v2.0.1及之前版本的SDK;如果还没有授权Key,请 申请密钥

4、由于iOS9改用更安全的https,为了能够在iOS9中正常使用地图SDK,请在"Info.plist"中进行如下配置,否则影响SDK的使用。NSAppTransportSecurityNSAllowsArbitraryLoads

如图

4166金沙手机官网 23

5、如果在iOS9中使用了调起百度地图客户端功能,必须在"Info.plist"中进行如下配置,否则不能调起百度地图客户端。

<key>LSApplicationQueriesSchemesbaidumap</key>

<array>

<string> baidumap</string>

</array>

如图(我这里是添加了两个方便大家看,大家可以根据需要来添加)

4166金沙手机官网 24

6、管理地图的生命周期:自2.0.0起,BMKMapView新增viewWillAppear、viewWillDisappear方法来控制BMKMapView的生命周期,并且在一个时刻只能有一个BMKMapView接受回调消息,因此在使用BMKMapView的viewController中需要在viewWillAppear、viewWillDisappear方法中调用BMKMapView的对应的方法,并处理delegate,代码如下:

viewWillAppear:animated

{

[_mapView viewWillAppear];

_mapView.delegate = self; // 此处记得不用的时候需要置nil,否则影响内存的释放

}

-viewWillDisappear:animated

{

[_mapView viewWillDisappear];

_mapView.delegate = nil; // 不用时,置nil

}

7、自iOS SDK v2.5.0起,为了对iOS8的定位能力做兼容,做了相应的修改,开发者在使用过程中注意事项如下: 需要在info.plist里添加(以下二选一,两个都添加默认使用NSLocationWhenInUseUsageDescription):

NSLocationWhenInUseUsageDescription ,允许在前台使用时获取GPS的描述

NSLocationAlwaysUsageDescription ,允许永久使用GPS的描述

如图

4166金沙手机官网 25

8、在使用Xcode6进行SDK开发过程中,需要在info.plist中添加:Bundle display name ,且其值不能为空(Xcode6新建的项目没有此配置,若没有会造成manager start failed)

9、百度地图iOS SDK v2.5.0起,对arm64进行了支持适配,开发包体积有所增加。但根据开发者在研发过程中的选择,最终生成的APP体积并不会发生较大的变化。

10、确认项目中添加mapapi.bundle文件以及添加方法正确,不能删除或随意更改其中files文件夹下的内容:

注:mapapi.bundle中存储了定位、默认大头针标注View及路线关键点的资源图片,还存储了矢量地图绘制必需的资源文件。如果您不需要使用内置的图片显示功能,则可以删除bundle文件中的image文件夹。您也可以根据具体需求任意替换或删除该bundle中image文件夹的图片文件。添加方式:将mapapi.bundle拷贝到您的工程目录,直接将该bundle文件托拽至Xcode工程左侧的Groups&Files中即可。若您需要替换定位、指南针的图标,请保留原文件名称,否则不显示替换的新图片,默认大头针标注与路线关键点的新图片名称可自定义名称。

11、注意BMKManager对象的生命周期管理,在使用地图SDK期间不能释放该对象,尤其在arc情况下注意避免提前被自动释放,否则,该对象一旦被释放,网络模块将不可用,地图无法加载,检索失败。

12、app在前后台切换时,需要使用下面的代码停止地图的渲染和openGL的绘制(V2.10.0后不需要再调用):

- applicationWillResignActive:(UIApplication *)application {

[BMKMapView willBackGround];//当应用即将后台时调用,停止一切调用opengl相关的操作

}

- applicationDidBecomeActive:(UIApplication *)application {

[BMKMapView didForeGround];//当应用恢复前台状态时调用,回复地图的渲染和opengl相关的操作

}

概述

百度地图iOS SDK自v2.7.0版本起,向广大开发者提供了 .framework形式的SDK开发包,这种形式的开发包配置简单,使用方便,推荐大家使用

如图,如果我们对百度地图还不太熟悉的话,我建议全部下载,我们可以看一下人家的源码,方便我们开发

4166金沙手机官网 26

注:此种方式只支持导入全量包的SDK,包含百度地图iOS SDK所有功能

一、前提:安装CocoaPods

在终端输入

sudo gem install cocoapods

如果安装成功,会有一个提示

Successfully installed cocoaPods

二、使用CocoaPods导入地图SDK

在当前工程文件(.xcodeproj)所在文件夹下,打开terminal

1.创建Podfile:

touch Podfile

2.编辑Podfile内容如下:

pod 'BaiduMapKit' #百度地图SDK

3.在Podfile所在的文件夹下输入命令:

pod install (这个可能比较慢,请耐心等待……)

成功以后,会出现如下记录:

Analyzing dependencies

Downloading dependencies

Installing BaiduMapKit

Generating Pods project

Integrating client project

[!] Please close any current Xcode sessions and use `***.xcworkspace` for this project from now on.

Sending stats

恭喜你已成功导入百度地图iOS SDK,现在就可以打开xcworkspace文件,在你的项目中使用百度地图SDK了

第一步、根据需要导入 .framework包

百度地图 iOS SDK 采用分包的形式提供 .framework包,请广大开发者使用时确保各分包的版本保持一致。其中BaiduMapAPI_Base.framework为基础包,使用SDK任何功能都需导入,其他分包可按需导入。

将所需的BaiduMapAPI_**.framework拷贝到工程所在文件夹下。

在 TARGETS->Build Phases-> Link Binary With Libaries中点击“+”按钮,在弹出的窗口中点击“Add Other”按钮,选择BaiduMapAPI_**.framework添加到工程中。

注: 静态库中采用Objective-C++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm),或者在工程属性中指定编译方式,即在Xcode的Project -> Edit Active Target -> Build Setting 中找到 Compile Sources As,并将其设置为"Objective-C++"

第二步、引入所需的系统库

百度地图SDK中提供了定位功能和动画效果,v2.0.0版本开始使用OpenGL渲染,因此您需要在您的Xcode工程中引入CoreLocation.framework和QuartzCore.framework、OpenGLES.framework、SystemConfiguration.framework、CoreGraphics.framework、Security.framework、libsqlite3.0.tbd(xcode7以前为 libsqlite3.0.dylib)、CoreTelephony.framework 、libstdc++.6.0.9.tbd(xcode7以前为libstdc++.6.0.9.dylib)。

(注:红色标识的系统库为v2.9.0新增的系统库,使用v2.9.0及以上版本的地图SDK,务必增加导入这3个系统库。)

添加方式:在Xcode的Project -> Active Target ->Build Phases ->Link Binary With Libraries,添加这几个系统库即可。

4166金沙手机官网 27

第三步、环境配置

在TARGETS->Build Settings->Other Linker Flags 中添加-ObjC。

如图

4166金沙手机官网 28

第四步、引入mapapi.bundle资源文件

如果使用了基础地图功能,需要添加该资源,否则地图不能正常显示mapapi.bundle中存储了定位、默认大头针标注View及路线关键点的资源图片,还存储了矢量地图绘制必需的资源文件。如果您不需要使用内置的图片显示功能,则可以删除bundle文件中的image文件夹。您也可以根据具体需求任意替换或删除该bundle中image文件夹的图片文件。

方法:选中工程名,在右键菜单中选择Add Files to “工程名”…,从BaiduMapAPI_Map.framework||Resources文件中选择mapapi.bundle文件,并勾选“Copy items if needed”复选框,单击“Add”按钮,将资源文件添加到工程中。

第五步、引入头文件

在使用SDK的类 按需 引入下边的头文件:

#import<BaiduMapAPI_Base/BMKBaseComponent.h>//引入base相关所有的头文件

#import<BaiduMapAPI_Map/BMKMapComponent.h>//引入地图功能所有的头文件

#import<BaiduMapAPI_Search/BMKSearchComponent.h>//引入检索功能所有的头文件

#import<BaiduMapAPI_Cloud/BMKCloudSearchComponent.h>//引入云检索功能所有的头文件

#import<BaiduMapAPI_Location/BMKLocationComponent.h>//引入定位功能所有的头文件

#import<BaiduMapAPI_Utils/BMKUtilsComponent.h>//引入计算工具所有的头文件

#import<BaiduMapAPI_Radar/BMKRadarComponent.h>//引入周边雷达功能所有的头文件

#import<BaiduMapAPI_Map/BMKMapView.h>//只引入所需的单个头文件

下面我们就来创建一个地图

在您的AppDelegate.h文件中添加BMKMapManager的定义

@interface BaiduMapApiDemoAppDelegate : NSObject <UIApplicationDelegate>{

UIWindow *window;

UINavigationController *navigationController;

BMKMapManager* _mapManager;

}

在您的AppDelegate.m文件中添加对BMKMapManager的初始化,并填入您申请的授权Key,示例如下

- application:(UIApplication *)application

didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 要使用百度地图,请先启动BaiduMapManager

_mapManager = [[BMKMapManager alloc]4166金沙手机官网,init];

// 如果要关注网络及授权验证事件,请设定 generalDelegate参数

BOOL ret = [_mapManager start:@"在此处输入您的授权Key" generalDelegate:nil];

if {

NSLog(@"manager start failed!");

}

// Add the navigation controller's view to the window and display.

[self.window addSubview:navigationController.view];

[self.window makeKeyAndVisible];

return YES;

}

在您的ViewController.m文件中添加BMKMapView的创建代码,示例如下

- viewDidLoad {

[super viewDidLoad];

BMKMapView* mapView = [[BMKMapView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];

self.view = mapView;

}

自2.0.0起,BMKMapView新增viewWillAppear、viewWillDisappear方法来控制BMKMapView的生命周期,并且在一个时刻只能有一个BMKMapView接受回调消息,因此在使用BMKMapView的viewController中需要在viewWillAppear、viewWillDisappear方法中调用BMKMapView的对应的方法,并处理delegate,代码如下:

viewWillAppear:animated

{

[_mapView viewWillAppear];

_mapView.delegate = self; // 此处记得不用的时候需要置nil,否则影响内存的释放

}

-viewWillDisappear:animated

{

[_mapView viewWillDisappear];

_mapView.delegate = nil; // 不用时,置nil

}

编译,运行,效果如下图所示:

4166金沙手机官网 29

然后我运行出现了报错

4166金沙手机官网 30

然后我们看一下出错的的原因

4166金沙手机官网 31

如果我们不知道这是什么原因的话我们可以吧报错复制粘贴到百度搜索一下会出现很多解决的方法;

我们先来看一下我这里,跟我们导入的API有关系,我看了一下原来是我那会吧真机测试的API导入了进去,我们重新换掉它来看一下

如图

4166金沙手机官网 32

然后就可以运行起来了,就是一个简单的百度地图;

然后我们也会看到下面提示一个

4166金沙手机官网 33

然后我们在info.plist中添加上就可以了

4166金沙手机官网 34

好了这个就是我们一个简单的百度开发的流程,我们来总结一下这篇文章:

一:开发流程

1.需要一个百度开发账号

2.注册一个新的应用

3.下载百度地图SDK,添加到项目里

4.配置开发环境

5.调试代码,能运行起来

二:注意事项

1.首先需要注意上面提到的注意事项,以及开发流程,一定要一步一步来操作,如果有一步出错就可能会导致我们的项目运行不起来(

2.还有就是我刚才遇到的,我们导入的API,如果是模拟器的就用模拟器运行,如果是真机的就用真机运行;

另外还有一个有时候会报错,需要我们修改

如图

4166金沙手机官网 35

一个简单的百度地图开发流程就是这样的,如果想详细了解其他的功能,请继续关注我后期的更新,后期我会继续把一些其他的功能,如定位,poi检索,导航等功能给大家写出来方便大家编写。

项目源码地址:

我写这篇文章希望能帮到大家,如果有写的不好的地方,希望各位大牛大神给指出来,谢谢!!!

本文由手机版美高梅网站发布于时尚,转载请注明出处:什么支付三个简便的百度地图,百度地图才能大

关键词:

上一篇:没有了

下一篇:没有了