1.

#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>//只引入所需的单个头文件

  

2.

import Foundation

typealias POIResultBlock = ([BMKPoiInfo])->()

class BaiduTool: NSObject {

    static let shareInstance = BaiduTool()

    private lazy var searcher: BMKPoiSearch = {

        let searcher = BMKPoiSearch()
searcher.delegate = self
return searcher }() private var poiResultBlock: POIResultBlock? func beginNav(startCoordinate: CLLocationCoordinate2D, endCoordinate: CLLocationCoordinate2D) {
//节点数组
var nodesArray = [BNRoutePlanNode]()
//起点
let startNode = BNRoutePlanNode()
startNode.pos = BNPosition()
startNode.pos.x = startCoordinate.longitude;
startNode.pos.y = startCoordinate.latitude;
startNode.pos.eType = BNCoordinate_BaiduMapSDK;
nodesArray.append(startNode) //终点
let endNode = BNRoutePlanNode()
endNode.pos = BNPosition()
endNode.pos.x = endCoordinate.longitude
endNode.pos.y = endCoordinate.latitude
endNode.pos.eType = BNCoordinate_BaiduMapSDK;
nodesArray.append(endNode) BNCoreServices.RoutePlanService().startNaviRoutePlan(BNRoutePlanMode_Recommend, naviNodes: nodesArray, time: nil, delegete: self , userInfo: nil)
} class func addAnnotation(coordinate: CLLocationCoordinate2D, title: String, subtitle: String, toMapView: BMKMapView) {
// 添加一个PointAnnotation
let annotation = BMKPointAnnotation()
annotation.coordinate = coordinate
annotation.title = title
annotation.subtitle = subtitle toMapView.addAnnotation(annotation) } func getPOIInfos(keyWord: String, center: CLLocationCoordinate2D, result: POIResultBlock?) { // 记录代码块, 在合适的地方执行
poiResultBlock = result // poi检索 //发起检索
let option = BMKNearbySearchOption()
// 起始页码
option.pageIndex = 0
// 每一页的容量
option.pageCapacity = 20
// 周边检索(谁的周边,中心店)
// CLLocationCoordinate2DMake(39.915, 116.404)
option.location = center
option.keyword = keyWord let flag = searcher.poiSearchNearBy(option) if flag
{
print("周边检索发送成功")
}
else
{
print("周边检索发送失败")
} } } extension BaiduTool: BMKPoiSearchDelegate { func onGetPoiResult(searcher: BMKPoiSearch!, result poiResult: BMKPoiResult!, errorCode: BMKSearchErrorCode) { if errorCode == BMK_SEARCH_NO_ERROR {
print("周边检索成功")
print(poiResult.poiInfoList) let poiInfos = poiResult.poiInfoList as! [BMKPoiInfo] if poiResultBlock != nil {
poiResultBlock!(poiInfos)
} }else {
print("检索失败")
} } } extension BaiduTool: BNNaviRoutePlanDelegate { func routePlanDidFinished(userInfo: [NSObject : AnyObject]!) {
BNCoreServices.UIService().showNaviUI(BN_NaviTypeSimulator, delegete: nil , isNeedLandscape: false)
} }

  

swift - 封装百度地图的更多相关文章

  1. 【Android】策略模式封装百度地图路线规划模块

    百度地图的Demo里有个路线规划的功能,但是,这个功能和Activity耦合性太高,所以需要单独抽离出路径规划功能,进行"解耦". 注:由于项目原因,本文只针对驾车路线规划进行封装 ...

  2. tp5 封装百度地图api接口

    //服务器端api extend\Map <?php /** * 百度地图业务封装 */ class Map{ /** * 根据地址来获取经纬度 * @param $address */ pub ...

  3. swift百度地图api

    swift使用百度地图api遇到的坑 之前在Android上用过百度地图,以为大概类似,也没仔细看文档,结果被自己坑了 注意事项,http://developer.baidu.com/map/inde ...

  4. swift 集成使用最新版百度地图_v2.10.2(一)

    目前在开发中使用百度地图的APP越来越多了,我在网上找的集成百度地图的例子不是很多,于是我就将我集成百度地图的过程记录了下来: 一.前提:安装CocoaPods sudo gem install co ...

  5. (转载) 百度地图工具类封装(包括定位,附近、城市、范围poi检索,反地理编码)

    目录视图 摘要视图 订阅 赠书 | 异步2周年,技术图书免费选      程序员8月书讯      项目管理+代码托管+文档协作,开发更流畅 百度地图工具类封装(包括定位,附近.城市.范围poi检索, ...

  6. 吐槽贴:百度地图 api 封装 的实用功能 [源码下载]

    ZMap 类 功能介绍 ZMap 是学习百度地图 api 接口,开发基本功能后整的一个脚本类,本类方法功能大多使用 prototype 原型 实现: 包含的功能有:轨迹回放,圈画区域可编辑,判断几个坐 ...

  7. iOS第三方地图-百度地图定位的封装

    // // BaiduMapTools.h // baidumapTest // // Created by apple on 15/8/26. // Copyright (c) 2015年 tqh. ...

  8. swift - 百度地图API集成

    1.百度搜索  百度地图api 2. 选中之后选择, 看功能需求下载 API 3. 下载的API拖入项目,此处有坑, 如果只用地图或者 定位,这中写着 是 导航的SDK 别拖进去, 不然报错 怕搞错到 ...

  9. 【月入41万】Mono For Android中使用百度地图SDK

    借助于Mono For Android技术,.Net开发者也可以使用自己熟悉的C#语言以及.Net来开发Android应用.由于Mono For Android把Android SDK中绝大部分类库都 ...

随机推荐

  1. 数据库操作API 或万能的双下划线

    数据库操作API: 类型 描述 exact 精确匹配: polls.get_object(id__exact=14). iexact 忽略大小写的精确匹配: polls.objects.filter( ...

  2. BlockingQueue之DelayQueue的学习使用

    DelayQueue 是一中阻塞队列,需要实现接口Delayed定义的方法.做下使用记录和心得吧, @Datapublic class DelayQueueExample implements Del ...

  3. jquery接触初级-----juqery 动画函数

    1. window.onload(), 一次只能保存对一个函数的引用:如果多次调用,他会自动用后面的函数覆盖前面的函数 2.$(document).ready(); 会在现有行为上追加新的行为,这些函 ...

  4. 编译安装php5 解决编译安装的php加载不了gd

    1. 编译安装php需要的模块: yum install libxml2-devel libxml2  curl curl-devel  libpng-devel  libpng  openssl o ...

  5. UNITY2018开启deepprofiling

    ADB方式调试游戏步骤 前提: 1,手机开启 [开发者模式][USB调试] 2,数据线连接手机和电脑 3,安装adb(注意adb版本不对可能导致adb deveices找不到设备,那就换个adb版本) ...

  6. ReactiveX 学习笔记(3)转换数据流

    Transforming Observables 本文的主题为转换 Observable 的操作符. 这里的 Observable 实质上是可观察的数据流. RxJava操作符(二)Transform ...

  7. avalon2学习教程02之vm

    avalon2的vm是一个非常重要的东西,其设计原型最初脱胎于knockout.js,但到avalon1.6中,终于寻得自己的方案,更精简,更易用,更魔幻. vm是一种特殊的数据结构,看起来像普通对象 ...

  8. springboot 整合redis redis工具类

    一步 : pom中引入相关依赖 <!-- 引入 redis 依赖 --> <dependency> <groupId>org.springframework.boo ...

  9. Logo tools

    http://www.cilogo.com/LOGO/

  10. ORA-01704: 字符串文字太长 oracle

    .net连接oracle时,当流从文件读出来更新数据库时,会报"ORA-01704: 字符串文字太长"这样的错误. 原因:sql语句拼接而成. 解决:采用参数方法传值. strin ...