iOS 百度地图获取当前地理位置

//
//  ViewController.m
//  BaiDuDemo
//
//  Created by Chocolate. on 15-3-2.
//  Copyright (c) 2015年 redasen. All rights reserved.
//

#import "ViewController.h"
#import "BMapKit.h"

@interface ViewController () <BMKGeoCodeSearchDelegate,BMKMapViewDelegate, BMKLocationServiceDelegate>
@property (strong, nonatomic) BMKMapView *mapView;
@property (strong, nonatomic) BMKGeoCodeSearch *search;
@property (strong, nonatomic) BMKLocationService *locService;
@end

@implementation ViewController
{
    BMKUserLocation *myLocation;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    _mapView = [[BMKMapView alloc] initWithFrame:self.view.bounds];
    [self.view addSubview:_mapView];

    _search = [[BMKGeoCodeSearch alloc]init];

    //初始化BMKLocationService
    _locService = [[BMKLocationService alloc]init];
    _locService.delegate = self;
    //启动LocationService
    [_locService startUserLocationService];
}

-(void)viewWillAppear:(BOOL)animated
{
    [_mapView viewWillAppear];
    _mapView.delegate = self;
     _search.delegate = self;
}

-(void)viewDidAppear:(BOOL)animated
{
    [_mapView setShowsUserLocation:YES];
}

-(void)viewWillDisappear:(BOOL)animated
{
    [_mapView setShowsUserLocation:NO];
    _mapView.delegate = nil;
    _search.delegate = nil;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#pragma mark - BMKLocationServiceDelegate
/**
 *在将要启动定位时,会调用此函数
 */
- (void)willStartLocatingUser
{

}

/**
 *在停止定位后,会调用此函数
 */
- (void)didStopLocatingUser
{
    CLLocationCoordinate2D pt = (CLLocationCoordinate2D){0, 0};

    pt = (CLLocationCoordinate2D){myLocation.location.coordinate.latitude, myLocation.location.coordinate.longitude};

    BMKReverseGeoCodeOption *option = [[BMKReverseGeoCodeOption alloc]init];
    option.reverseGeoPoint = pt;
    BOOL result = [_search reverseGeoCode:option];

    if(result)
    {
        NSLog(@"反geo检索发送成功");
    }
    else
    {
        NSLog(@"反geo检索发送失败");
    }
}

/**
 *用户方向更新后,会调用此函数
 *@param userLocation 新的用户位置
 */
- (void)didUpdateUserHeading:(BMKUserLocation *)userLocation
{
    NSLog(@"heading is %@",userLocation.heading);
}

/**
 *用户位置更新后,会调用此函数
 *@param userLocation 新的用户位置
 */
- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation
{
    if (userLocation != nil) {

        NSLog(@"get location success");
        myLocation = userLocation;
        _mapView.showsUserLocation = NO;
        [_locService stopUserLocationService];
    }

    NSLog(@"didUpdateUserLocation lat %f,long %f",userLocation.location.coordinate.latitude,userLocation.location.coordinate.longitude);
}

/**
 *定位失败后,会调用此函数
 *@param error 错误号
 */
- (void)didFailToLocateUserWithError:(NSError *)error
{

}

#pragma mark - BMKGeoCodeSearchDelegate

/**
 *返回地址信息搜索结果
 *@param searcher 搜索对象
 *@param result 搜索结BMKGeoCodeSearch果
 *@param error 错误号,@see BMKSearchErrorCode
 */
- (void)onGetGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error
{

}

/**
 *返回反地理编码搜索结果
 *@param searcher 搜索对象
 *@param result 搜索结果
 *@param error 错误号,@see BMKSearchErrorCode
 */
- (void)onGetReverseGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKReverseGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error
{
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"" message:result.address delegate:self cancelButtonTitle:@"关闭" otherButtonTitles:nil, nil];
    [alert show];
}

@end
时间: 2024-10-26 04:12:54

iOS 百度地图获取当前地理位置的相关文章

iOS 百度地图获取地理位置名称

目前很多的应用都用到了百度地图这一版本,不过有些方法是我在网上并没有找到的,但是这并不意味着就没有相关的文章介绍,那么这里我所记录的就是百度地图获取地理位置,以及省份,城市,区域,其他的不多说了,直接进入正题吧:       创建地图基本图层 首先,需要到http://dev.baidu.com/wiki/imap/index.php?title=iOS平台/相关下载下载全部内容,包括文档,示例代码和开发包. 然后获取自己的API KEY,具体方法按百度的官网申请就行,比较简单. 下载的文件应该

IOS百度地图使用基础指南+原生分享&友盟分享

1.地图 1.获取用户的经纬度(CLLocationManager) 创建属性:CLLocationManager *mgr; 遵守协议:<CLLocationManagerDelegate> a>创建定位管理器 self.mgr = [[CLLocationManager alloc] init]; b>设置代理 self.mgr.delegate = self; c>开始定位 [self.mgr startUpdatingLocation]; 代理方法: -(void)l

iOS百度地图笔记(环境安装)

最近有项目要使用到地图功能,先做一下调研.百度的ios开发环境需要具备两点,一 秘钥 二 SDK.在百度上搜索“ios百度地图api”,然后打开网页“百度地图API-首页”.在此官网上可以获取所有需要的条件. 一 获取秘钥 在官网上点击“申请秘钥” 点击创建应用 这里需要注意几点: 1 应用类型选择 iOS SDK:2 安全码是使用百度地图SDK的APP的bundle ID. 点击提交,这样在你账号下的应用列表中就能看到百度给你分配的秘钥了.访问应用(AK)字段即为秘钥. 二 获取SDK并且配置

ios百度地图的使用

在这里就不在介绍百度的具体配置,配置详见http://developer.baidu.com/map/index.php?title=iossdk 1.首先接受基本的地图功能 新建一个地图类,xib拖也行,我这边是代码实现的.  _mapView = [[BMKMapView alloc]initWithFrame:CGRectMake(0, 0,self.view.frame.size.width, self.view.frame.size.height)];  [self.view addS

IOS百度地图之---&gt;第一篇《环境配置与基本使用》

Ios 百度地图SDK简易使用说明:http://developer.baidu.com/map/index.php?title=iossdk 先道歉:对于原来上传的Demo我很抱歉,什么都没有,也没有文档,这次我会逐步增加SDK中相关功能使用(基于百度Simple),如果我写不好请大家多多包含: 第一步:合成静态文件 lipo -create Release-iphoneos/libbaidumapapi.a Release-iphonesimulator/libbaidumapapi.a -

iOS百度地图

一.百度地图sdk详细使用过程,参考下面的博客(我感觉很详细,而且有问题可以找楼主,他会给解答,感谢好心人-): 如何使用百度地图sdk,及相关demo下载 上述博客给的demo,是真机运行的(百度地图sdk区分真机和模拟器).博客中的demo,需要自己手动修改一些设置,才可运行(可对比下面的注意事项设置). 二.iOS中,使用百度地图sdk的注意事项: 1.百度地图sdk区分真机和模拟器,导入的时候需要注意: 2.工程中一定要有.mm文件: 3.一定要添加MapKit.framework.Co

iOS百度地图poi检索(基于百度地图2.3.0SDK开发)

正好做到百度地图的poi检索,拿来分享一下,基于百度地图2.3.0SDK开发,说实话,这个新版本poi真不好用 先来看头文件里面,定义poi对象,当然你也可以写到实现文件里面 #import <UIKit/UIKit.h> #import "BMapKit.h" @interface NearByPlaceViewController : ViewControllerBase <BMKPoiSearchDelegate> {     BMKPoiSearch *

ios 百度地图使用

第一步.引入 1.下载SDK  地址http://developer.baidu.com/map/index.php?title=iossdk/sdkiosdev-download 2.解压出BaiduMap_IOSSDK_v2.3.0_Lib.在工程中第三方中添加文件夹BaiDumap 然后在文件夹中放入(1:inc;2:mapapi.bundle:libbaidumapapi.a) 第二步.创建百度地图应用 1.http://lbsyun.baidu.com/apiconsole/key在这

IOS 百度地图导入最新 SDK 2.9 报错

IOS 百度地图导入最新2.9SDK 报错 _baidu_framework::HandleBasemapMerge(_baidu_vi::CVString const 解决: 因为XCode默认使用的C++标准库是苹果自己的libc++(LLVM C++ standard library with c++11 support),而百度地图SDK中使用的C++标准库是GNU C++的.解决方法,在target的build settings中搜索"c++ standard library"