(八十四)集成百度地图和基本使用

配置的详细内容可以查看百度地图API文档来获取。

①首先下载百度iOS SDK的完整包,将其中Lib的Release-iphonesimulator下的framework文件导入到工程,然后双击打开framework文件,再打开Resources,将其中的mapapi.bundle导入到工程。

②从系统设置中导入下列框架:

③在Build Settings里搜索other linker Flags,添加-ObjC标记。

④因为静态库用到了C++,因此工程中必须有mm文件,最简单的方法是把其中一个m文件改成mm。

⑤对于Xcode6和以后的版本,还需要在info.plist中加入Bundle display name,值随便写,一般写Bundle identifier的值。

⑥在AppDelegate中创建管理者,然后启动,需要传入key。

#import "AppDelegate.h"

@interface AppDelegate ()

@property (nonatomic, strong) BMKMapManager *mapManager;

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    _mapManager = [[BMKMapManager alloc] init];
    BOOL ret = [_mapManager start:@"这里填写key" generalDelegate:self];
    if (!ret) {
        NSLog(@"manager start failed");
    }

    return YES;
}

@end

Tip:key和bundle identify的值应该和申请开发者时创建的应用内的一致,否则无法正常的授权。

⑦显示地图和基本使用

下面的代码创建了MapView和Poisearch,实现了地图的显示和POI检索。

#import "ViewController.h"
#import <BaiduMapAPI/BMapKit.h>

@interface ViewController () <BMKMapViewDelegate,BMKPoiSearchDelegate>

@property (nonatomic, weak) BMKMapView *mapView;
@property (nonatomic, strong) BMKPoiSearch *searcher;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    BMKMapView* mapView = [[BMKMapView alloc]initWithFrame:CGRectMake(0, 20, 320, 420)];
    [self.view addSubview:mapView];
    _mapView  = mapView;

    _searcher = [[BMKPoiSearch alloc] init];
    _searcher.delegate = self;

}

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

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

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

    NSLog(@"in");

    // 检索周边信息
    BMKCitySearchOption *option = [[BMKCitySearchOption alloc] init];
    option.pageIndex = 0;
    option.pageCapacity = 10;
    option.city = @"北京";
    option.keyword = @"小吃";
    BOOL flag = [_searcher poiSearchInCity:option];
    if(flag)
    {
        NSLog(@"周边检索发送成功");
    }
    else
    {
        NSLog(@"周边检索发送失败");
    }
}

- (void)onGetPoiResult:(BMKPoiSearch *)searcher result:(BMKPoiResult*)result errorCode:(BMKSearchErrorCode)error
{
    // 清楚屏幕中所有的annotation
    NSArray* array = [NSArray arrayWithArray:_mapView.annotations];
    [_mapView removeAnnotations:array];

    if (error == BMK_SEARCH_NO_ERROR) {
        NSMutableArray *annotations = [NSMutableArray array];
        for (int i = 0; i < result.poiInfoList.count; i++) {
            BMKPoiInfo* poi = [result.poiInfoList objectAtIndex:i];
            BMKPointAnnotation* item = [[BMKPointAnnotation alloc]init];
            item.coordinate = poi.pt;
            item.title = poi.name;
            [annotations addObject:item];
        }
        [_mapView addAnnotations:annotations];
        [_mapView showAnnotations:annotations animated:YES];
    } else if (error == BMK_SEARCH_AMBIGUOUS_ROURE_ADDR){
        NSLog(@"起始点有歧义");
    } else {
        // 各种情况的判断。。。
    }
}

@end

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-22 14:10:56

(八十四)集成百度地图和基本使用的相关文章

集成百度地图SDK(swift)

一 集成百度地图最终的效果 二 知识点 1 信息检索 2 地图大头针和导航SDK 三 集成百度地图SDK 1 百度搜索百度地图SDK 2 注册账号(尽量)–>如果没有账号,最好去注册一个账号(我这里就不细说注册账号的步骤了) 3 由于我们要做的是和百度地图相关的,所以直接按照下面图片点击即可(这里我将一一介绍ios中地图的相关开发) 4 点击ios地图SDK里面是一些相关概述 5 按照图片点击进入下面 6 相关解释 6.1 一般我们都是直接点击"全部下载" 6.2 解释 : &q

iOS开发之集成百度地图踩过的那些坑(基于 Xcode7.0/iOS9.2)

本篇分4步讲述如何在项目中集成百度地图: 第一步:创建项目 第二步:利用 cocoaPod 导入百度地图的 SDK(pod 'BaiduMapKit' #百度地图SDK) 第三步:在 pch 文件中导入头文件和秘钥 秘钥是在 http://lbsyun.baidu.com/apiconsole/key 百度开放平台申请. #define APPKEY @"UzyiXewPsqPhcE1yS8wxqik9" 在使用SDK的类时按需引入下边的头文件 #import <BaiduMap

Android 开发之集成百度地图的定位与地图展示

app 应用中,大多数应用都具有定位功能,百度定位就成了开发人员的集成定位功能的首选,最近也在做定位功能,但是发现百度真是个大坑啊, sdk 命名更新了,相关代码却不更新,害得我花费了很长时间来研究,今天来给大家分享下 Android 集成百度地图要注意的事情,这里只是集成了定位和地图展示功能,其他功能还未涉及,先看下效果图: 接下来介绍一下 Android 集成百度地图的步骤: 首先登陆百度开发平台,在我的应用中创建应用,然后你会看到如下界面: 根据它的要求填写相关信息,这里的安全是有 SHA

集成百度地图API实现定位

一.百度地图API获取定位 AndroidManifest.xml必须配置: 定位服务 <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote" android:exported="false"> <intent-filter > <action android:nam

Android Studio 项目中集成百度地图SDK报Native method not found: com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create:()I错误

Android Studio 项目中集成百度地图SDK报以下错误: 1 java.lang.UnsatisfiedLinkError: Native method not found: com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create)I 2 at com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create(Native Met

集成百度地图SDK,百度定位SDK,二维码扫描

集成百度地图SDK,百度定位SDK,二维码扫描,运用xUtils(https://github.com/wyouflf/xUtils)开发框架,外国仿微信底部弹窗 注意:因上传时忘记删除libs下的locSDK_3.1.jar 和armeabi/liblocSDK3.so包,请下载源码的朋友把这两个文件给删除下再导入项目运行. 标签: xUtils [1].[文件] Demo.apk ~ 2MB    下载(202) 跳至 [1] [2] [3] [4] [5] [6] [2].[文件] Dem

同时集成百度地图、定位以及导航遇到的一些坑

项目用到的地图功能有点多,同时集成了地图.定位以及导航这几个功能. 每个单独使用,都很顺利,但合在一起用会有问题. 我每次集成百度地图,都会在http://lbsyun.baidu.com/sdk/download?selected=mapsdk_basicmap,mapsdk_searchfunction,mapsdk_lbscloudsearch,mapsdk_calculationtool,mapsdk_radar 自定义下载百度地图SDK,不会存在很多同学经常出现的包冲突问题. 这次出现

微信JS-SDK之地理位置的获取与在线导航,集成百度地图实现在线地图搜索

原创声明:本文来源于本人另一博客[微信JS-SDK之地理位置的获取,集成百度地图实现在线地图搜索]原创作品,绝非他处摘取,转载请联系博主 本次讲解微信开发第三篇:获取用户地址位置信息,是非常常用的功能,特别是服务行业公众号,尤为需要该功能,本次讲解的就是如何调用微信JS-SDK接口,获取用户位置信息,并结合百度地铁,实现在线地图搜索,与在线导航. 官方文档地址:https://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.htm

iOS开发之集成百度地图

由于iOS MapKit框架很多情况并不能满足我们的需求,我们可以选择集成百度地图,那该如何操作呢? 申请Key 登录百度API管理中心申请Key http://lbsyun.baidu.com/apiconsole/key 创建一个应用 箭头所指就是我们所要用到的Key 下载SDK http://developer.baidu.com/map/static/doc/output_ios/BaiduMap_IOSSDK_v2.6.0_All.zip 开发指南 如何使用开发包可以参考开发指南 ht

Android 集成百度地图实现设备定位

Android 集成百度地图实现设备定位步骤1:申请android 端SDK :http://lbsyun.baidu.com/步骤2:下载基础版SDK步骤3:下载示例程序步骤4:开始集成:ak加入libs加入SDKInitializer.setCoordType(CoordType.BD09LL);图标类 /** * 演示覆盖物的用法 */ public class OverlayDemo extends BaseActivity { /** * MapView 是地图主控件 */ priva