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. C语言复习: 二级指针和多级指针

    二级指针内存模型建立 void main2() {     int i = 0;       //指针数组     char * p1[] = { "123", "456 ...

  2. webpack 自动发现 entry 的配置和引用方式

    假定我们的项目目录为如下的样子: - root/ - assets/ - app/ - global.js - index/ - index.js - auth/ - login.js - regis ...

  3. Todolist组件

    一.什么是组件? 组件是可复用的 Vue 实例.是页面上的某一部分. 大型项目可以拆分成很多小组件. 二.如何定义(创建)组件? 全局组件:通过Vue.component方法创建的组件是全局组件.其中 ...

  4. 深入jUI(DWZ)

    -----------------------------------------------------------------------------主页面index.html <html& ...

  5. 22.executor service Flask

    pip包管理器 没有npm那么强大 不支持 npm --save install 这样的方法 但是我们有别的方法 安装Flask 但是呢 我们不能把它存放在package .json 那就需要我们自己 ...

  6. eclipse git 创建新分支 合并分支 删除分支

    创建分支: 合并分支: 删除分支:

  7. linux 设备驱动分类

    1. 字符设备 :在I/O传输过程中以字符为单位. 2. 块设备: 在传输过程中以块为单位,相关概念有 缓冲,I/O调度,请求队列.主要体现出与字符设备在操作硬件的接口实现方式上是不一样的. 3. 网 ...

  8. vue样式绑定

    vue 绑定class 和style 有相同的地方,可以是数组和对象,对于class class是真实的在css样式中添加的,只不过在元素中添加需要:class这样代表绑定,然后这个class作为对象 ...

  9. 03_java基础(四)之方法的创建与调用

    import org.junit.Test; public class Main { public static void main(String[] args) { System.out.print ...

  10. Trustin Lee

    Trustin Lee,MINA.Netty2通讯框架的作者韩国人,80年出生,8岁起在MSX迷你计算机上编写BASIC程序,爱好游戏编程以及使用汇编.C和C++解决编程问题,1998年获得韩国信息奥 ...