你的位置:首页 > 软件开发 > 操作系统 > iOS第三方地图-百度地图中心点定位

iOS第三方地图-百度地图中心点定位

发布时间:2015-09-05 19:00:17
使用百度地图定位后,滑动地图,使用反编码确定地图中心店的位置信息//// MapControl.m// quyizu//// Created by apple on 15/9/2.// Copyright (c) 2015年 waste. All rights reserved. ...

使用百度地图定位后,滑动地图,使用反编码确定地图中心店的位置信息

//// MapControl.m// quyizu//// Created by apple on 15/9/2.// Copyright (c) 2015年 waste. All rights reserved.////使用百度地图定位,poi搜索,地理编码功能#import "MapControl.h"#import "WJBaiduMapTools.h"@interface MapControl ()<BMKPoiSearchDelegate,BMKMapViewDelegate,BMKGeoCodeSearchDelegate,BMKLocationServiceDelegate>{  BMKMapView *_mapView;        //地图  BMKPoiSearch *_poisearch;      //poi搜索  BMKGeoCodeSearch *_geocodesearch;  //geo搜索服务  CGFloat _longitude;   //经度  CGFloat _latitude;   //纬度  UILabel *_labelShow;   //信息显示  NSInteger _index;    //判断次数  BMKLocationService* _locService;  UIImageView *_viewCenterBG;}@end@implementation MapControl- (instancetype)init{  self = [super init];  if (self) {    UIBarButtonItem *rightItem = [[UIBarButtonItem alloc]initWithTitle:@"确定" style:UIBarButtonItemStylePlain target:self action:@selector(rightItemPressed)];    self.navigationItem.rightBarButtonItem = rightItem;  }  return self;}- (void)rightItemPressed {  [self.navigationController popViewControllerAnimated:YES];  if ([_delegate respondsToSelector:@selector(mapControlDelegate:isSchool:)]) {    [_delegate mapControlDelegate:_labelShow.text isSchool:_isSchool];  }}- (void)viewWillAppear:(BOOL)animated {  [super viewWillAppear:animated];   _mapView.delegate = self;  _geocodesearch.delegate = self;  _locService.delegate = self;}-(void)viewWillDisappear:(BOOL)animated{  _mapView.delegate = nil; // 不用时,置nil  _poisearch.delegate = nil; // 不用时,置nil  _geocodesearch.delegate = nil;  _locService.delegate = nil;}- (void)dealloc {  if (_geocodesearch != nil) {    _geocodesearch = nil;  }  if (_mapView) {    _mapView = nil;  }}- (void)viewDidLoad {  [super viewDidLoad];  if (_isSchool) {    [self addnavigationTitle:@"上学方便"];  }else {    [self addnavigationTitle:@"工作方便"];  }  _mapView = [[BMKMapView alloc]initWithFrame:CGRectMake(0, 0, ScreenWidth, ScreenHeight)];  [_mapView setZoomLevel:17];  [self.view addSubview:_mapView];  _geocodesearch = [[BMKGeoCodeSearch alloc]init];  _locService = [[BMKLocationService alloc]init];  [_locService startUserLocationService];  [self initCenterView];}- (void)initCenterView {  UIView *viewBG = [[UIView alloc]initWithFrame:CGRectMake(0, 64, ScreenWidth, 60)];  [self.view addSubview:viewBG];    UIView *viewBGalpha = [[UIView alloc]initWithFrame:viewBG.bounds];  viewBGalpha.backgroundColor = [UIColor blackColor];  viewBGalpha.alpha = 0.4;  [viewBG addSubview:viewBGalpha];    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(15, 0, ScreenWidth-30, 60)];  label.textAlignment = NSTextAlignmentCenter;  label.text = @"地图显示";  label.numberOfLines = 2;  label.font = [UIFont systemFontOfSize:14];  label.textColor = [UIColor whiteColor];  [viewBG addSubview:label];  _labelShow = label;    UIImageView *viewCenterBG = [[UIImageView alloc]init];  viewCenterBG.image = [UIImage imageNamed:@"map_iconBG"];  viewCenterBG.center = CGPointMake(ScreenWidth/2, ScreenHeight/2);  viewCenterBG.bounds = CGRectMake(0, 0, 50, 50);  viewCenterBG.alpha = 0.5;  _viewCenterBG= viewCenterBG;  [self.view addSubview:viewCenterBG];    [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(timerPressed) userInfo:nil repeats:YES];    UIView *view = [[UIView alloc]init];  view.center = CGPointMake(ScreenWidth/2, ScreenHeight/2);  view.bounds = CGRectMake(0, 0, 15, 15);  view.layer.cornerRadius = 7.5;  view.layer.borderWidth = 1;  view.layer.borderColor = [UIColor whiteColor].CGColor;  view.layer.masksToBounds = YES;  view.backgroundColor = [UIColor colorWithHexString:@"69c9fa"];  [self.view addSubview:view];}- (void)timerPressed {  [UIView animateWithDuration:2 animations:^{    _viewCenterBG.bounds = CGRectMake(0, 0, 100, 100);    _viewCenterBG.alpha = 0.1;  } completion:^(BOOL finished) {    [UIView animateWithDuration:2 animations:^{      _viewCenterBG.bounds = CGRectMake(0, 0, 50, 50);      _viewCenterBG.alpha = 0.5;    }];  }];}#pragma mark - 根据经纬度搜索- (void)reverseGeoPointSearchlongitude:(CGFloat )longitude latitude:(CGFloat)latitude{    CLLocationCoordinate2D pt = (CLLocationCoordinate2D){0, 0};    pt = (CLLocationCoordinate2D){latitude, longitude};  BMKReverseGeoCodeOption *reverseGeocodeSearchOption = [[BMKReverseGeoCodeOption alloc]init];  reverseGeocodeSearchOption.reverseGeoPoint = pt;  BOOL flag = [_geocodesearch reverseGeoCode:reverseGeocodeSearchOption];  if(flag)  {    NSLog(@"反geo检索发送成功");  }  else  {    NSLog(@"反geo检索发送失败");  }}#pragma mark - BMKMapViewDelegate//地图改变完成调用这个接口- (void)mapView:(BMKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {    if (_longitude == mapView.centerCoordinate.longitude &&_latitude == mapView.centerCoordinate.latitude) {      }else {    if (_index !=0) {      [self reverseGeoPointSearchlongitude:mapView.centerCoordinate.longitude latitude:mapView.centerCoordinate.latitude];      _longitude = mapView.centerCoordinate.longitude;      _latitude = mapView.centerCoordinate.latitude;    }  }  NSLog(@"%f,%f",mapView.centerCoordinate.longitude,mapView.centerCoordinate.latitude);}#pragma mark - BMKGeoCodeSearchDelegate// *返回反地理编码搜索结果- (void)onGetReverseGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKReverseGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error {  if (error == 0) {    BMKPointAnnotation* item = [[BMKPointAnnotation alloc]init];    item.coordinate = result.location;    item.title = result.address;    if (_index == 0) {      _mapView.centerCoordinate = result.location;      _index ++;    }    NSString* titleStr;    NSString* showmeg;    titleStr = @"反向地理编码";    showmeg = [NSString stringWithFormat:@"%@",item.title];    _labelShow.text = showmeg;  }}#pragma mark - BMKLocationServiceDelegate- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation {  [_locService stopUserLocationService];  [self reverseGeoPointSearchlongitude:userLocation.location.coordinate.longitude latitude:userLocation.location.coordinate.latitude];}@end

原标题:iOS第三方地图-百度地图中心点定位

关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。