百度地图集成--二

参考官方文档 --> 申请秘钥 --> 配置开发环境 --> Hello BaiduMap --> 注意事项

--> 注意Bundle ID(官方文档没有提示)

先创建一个百度地图文件  进行如下操作

在使用SDK的类 按需 引入下边的头文件:(appdelegte 中  和 viewController 中分别导入以下头文件)

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

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

@interface ViewController ()<BMKMapViewDelegate, BMKPoiSearchDelegate>
{
    BMKMapView *_mapView;

    BMKPoiSearch *_searcher;
}
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    //1. 创建百度地图
    _mapView = [[BMKMapView alloc]init];
    self.view = _mapView;

    //2. 切换为卫星图
    //[_mapView setMapType:BMKMapTypeSatellite];

    //3. 添加一个PointAnnotation
    BMKPointAnnotation* annotation = [[BMKPointAnnotation alloc]init];
    CLLocationCoordinate2D coor;
    coor.latitude = 39.915;
    coor.longitude = 116.404;
    annotation.coordinate = coor;
    annotation.title = @"这里是北京";
    [_mapView addAnnotation:annotation];

    //4.POI检索代码
    [self performSelector:@selector(poiSearch) withObject:nil afterDelay:2];

    //5.设置地图显示层级 3最大, 20最小
    [_mapView setZoomLevel:16];

}

#pragma mark POI检索代码
- (void)poiSearch
{
    //1. 初始化检索对象
    _searcher =[[BMKPoiSearch alloc]init];
    _searcher.delegate = self;

    //2. 发起检索 --> 拼接参数
    BMKNearbySearchOption *option = [[BMKNearbySearchOption alloc]init];
    //分页索引,可选,默认为0
    option.pageIndex = 0;
    //分页数量,可选,默认为10,最多为50
    option.pageCapacity = 10;

    option.location = CLLocationCoordinate2DMake(39.915, 116.404);
    option.keyword = @"小吃";

    BOOL flag = [_searcher poiSearchNearBy:option];
    if(flag)
    {
        NSLog(@"周边检索发送成功");
    }
    else
    {
        NSLog(@"周边检索发送失败");
    }

}

//实现PoiSearchDeleage处理回调结果
- (void)onGetPoiResult:(BMKPoiSearch*)searcher result:(BMKPoiResult*)poiResultList errorCode:(BMKSearchErrorCode)error
{
    if (error == BMK_SEARCH_NO_ERROR) {
        //在此处理正常结果

        // 添加大头针 / 显示一个列表给用户

        for (BMKPoiInfo *poiInfo in poiResultList.poiInfoList) {

            BMKPointAnnotation* annotation = [[BMKPointAnnotation alloc]init];
            annotation.coordinate = poiInfo.pt;
            annotation.title = poiInfo.name;
            [_mapView addAnnotation:annotation];
        }

    }
    else if (error == BMK_SEARCH_AMBIGUOUS_KEYWORD){
        //当在设置城市未找到结果,但在其他城市找到结果时,回调建议检索城市列表
        // result.cityList;
        NSLog(@"起始点有歧义");
    } else {
        NSLog(@"error: %zd",error);
        NSLog(@"抱歉,未找到结果");
    }
}

- (void)viewWillAppear:(BOOL)animated
{
    [_mapView viewWillAppear];
    _mapView.delegate = self; // 此处记得不用的时候需要置nil,否则影响内存的释放
}

- (void)viewWillDisappear:(BOOL)animated
{
    [_mapView viewWillDisappear];
    _mapView.delegate = nil; // 不用时,置nil
    _searcher.delegate = nil; //不使用时将delegate设置为 nil
}

@end

 
时间: 2024-10-24 11:54:30

百度地图集成--二的相关文章

C#的百度地图开发(二)转换JSON数据为相应的类

原文:C#的百度地图开发(二)转换JSON数据为相应的类 在<C#的百度地图开发(一)发起HTTP请求>一文中我们向百度提供的API的URL发起请求,并得到了返回的结果,结果是一串JSON数据,我们先将这个JSON数据,使用在线工盯进行格式化. [html] view plaincopy { "status": 0, "result": [ { "x": 39.926674689976, "y": 116.4659

Android百度地图(二)结合方向传感器我们自己定位哪里走

Android百度地图(二)结合方向传感器我们自己定位哪里走 本文代码在http://blog.csdn.net/xyzz609/article/details/51943556的基础上进一步改动.有兴趣的同学能够研究下怎么改动的 本篇我们准备为地图加入:第一.定位功能:第二.与方向传感器结合.通过旋转手机进行道路的方向确认. 有了这两个功能.地图已经能够为我服务了 @一启动就自己主动定位了 a,MainActivity 中加入定位代码,定位的监听器MyLocationListener b.封装

百度地图API二次开发小经验分享

最近在做一个物流后台系统,需要用地图来把订单地址展示出来,需要在地图上批量框选坐标进行排单,需要看到配送员的实时位置等等功能. 在高德地图.腾讯地图.百度地图三者间,我选了百度地图,没有原因,个人偏好,因此我也不知道高德地图和腾讯地图好不好用.反正到目前为止,我所想到的功能,百度都有对应的接口提供,点个赞. 一.关于百度地图的JavaScript API 在网站上通过js直接来调用百度的api,使用方法很简单,可以参考官网:http://developer.baidu.com/map/index

[android] 百度地图开发 (二).定位城市位置和城市POI搜索

一. 百度地图城市定位和POI搜索知识       上一篇文章"百度地图开发(一)"中讲述了如何申请百度APIKey及解决显示空白网格的问题.该篇文章主要讲述如何定位城市位置.定位自己的位置和进行城市兴趣点POI(Point of Interest)搜索.那么如何在百度地图上定位某一个位置呢?       通过类GeoPoint可以定义经纬度,它存放着纬度值和经度值,通过getLastKnownLocation()方法可以获取Location对象,再定位经纬度设置其为地图中心即可显示当

Android开放百度地图集成

1.创建应用 获取AK (我理解为Application key)  通过百度账号登录百度地图开放平台,进入API控制台 http://lbsyun.baidu.com/apiconsole/key 创建自己的应用,输入应用名称 ,选择Android SDK 应用类型,选择需要的服务(默认全选) 输入签名文件的SHA1,默认的签名文件debug.keystore 在 C:\Users\你的用户\.android下,然后打开控制台cd到此目录下 键入 keytool -v -list -keyto

IOS第三方地图-百度地图集成

百度地图官网: http://developer.baidu.com/map/index.php?title=iossdk 照上面吧百度地图sdk集成到工程 然后在pilst文件中加入: 如果地图没有显示就是key没有配置对,仔细检查下

百度地图集成(一)

登录百度地图开放平台 同意LBS协议 然后创建应用 Android应用获取包名packagename,根据开发工具不同,获取位置有所不同,这里只讲解eclipse 使用 eclipse 开发 包名是Android应用程序本身在AndroidManifest.xml 中定义的名称,例如: Android签名证书的sha1值获取方式: 使用keytool 第1步:运行进入控制台 然后 第2步:定位到.android文件夹下,输入cd .android 第3步:输入keytool -list -v -

百度地图集成 - 2.48 - 检索周围信息

官方文档 --- http://developer.baidu.com/map/index.php?title=iossdk/guide/key 百度地图在2.5之前, 不支持64位手机端. [注意] 首先成为百度开发者, 然后创建应用,设置bundleID-- http://developer.baidu.com/console; error : 1. "_SCNetworkReachabilityCreateWithAddress", referenced from  ---- 系

通过百度地图API显示当前位置在地图上(图标显示)--第三方开源--百度地图(二)

1.下载百度地图的demo,下载地址:http://lbsyun.baidu.com/sdk/download?selected=mapsdk_basicmap,mapsdk_searchfunction,mapsdk_lbscloudsearch,mapsdk_calculationtool,mapsdk_radar 2.把demo里面的BaiduMapsApiDemo解压,把BaiduMapsApiDemo文件夹里面的libs里面的所有文件都复制到自己的项目的libs里面 3.配置Andro