快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

ios地图开发教程,iOS地图开发

ios开发百度地图怎么获取里程

列出关键几点:

创新互联专注于企业成都全网营销、网站重做改版、云龙网站定制设计、自适应品牌网站建设、H5技术商城网站建设、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为云龙等各大城市提供网站开发制作服务。

1. 百度上注册开发者账号,申请app AK,下载sdk

2. 加入sdk文件到代码中

3. appDelegate 中注册:

1)首先 #import"BMapKit.h"

2)didFinishLaunchingWithOptions方法中加入下面代码

// 要使用百度地图,请先启动BaiduMapManager

_mapManager = [[BMKMapManageralloc]init];

BOOL ret = [_mapManagerstart:@"mG6DBmXxsgFjc4CMB3ruX7Gr"generalDelegate:self];

if (!ret) {

NSLog(@"baidu map api: ---------- ------manager start failed!");

}

3)applicationWillResignActive方法中加入下面代码

[BMKMapViewwillBackGround];//百度地图api

4)applicationDidBecomeActive方法中加入下面代码

[BMKMapView willBackGround];// 百度地图api

5)AppDelegate实现代理 BMKGeneralDelegate

//代理方法

- (void)onGetNetworkState:(int)iError

{

if (0 == iError) {

NSLog(@"baidu map api: ---------- ------联网成功");

}

else{

NSLog(@"baidu map api: ---------- ------onGetNetworkState %d",iError);

}

}

//代理方法

- (void)onGetPermissionState:(int)iError

{

if (0 == iError) {

NSLog(@"baidu map api: ---------- ------授权成功");

}

else {

NSLog(@"baidu map api: ---------- ------onGetPermissionState %d",iError);

}

}

4 Build Settings - Other Linker Flags 去掉 -all_load

这个是为了解决问题: duplicate symbols for architecture armv7

5. 定位代码

- (void)viewDidLoad {

[superviewDidLoad];

//设置定位精确度,默认:kCLLocationAccuracyBest

//[BMKLocationServicesetLocationDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];

//指定最小距离更新(米),默认:kCLDistanceFilterNone

//[BMKLocationServicesetLocationDistanceFilter:100.f];

// 利用百度地图api定位

//初始化BMKLocationService

_locService = [[BMKLocationServicealloc]init];

_locService.delegate =self;

//启动LocationService

[_locServicestartUserLocationService];

对应代理BMKLocationServiceDelegate

// 代理方法

#pragma mark - BMKLocationServiceDelegate

//实现相关delegate处理位置信息更新

//处理方向变更信息

- (void)didUpdateUserHeading:(BMKUserLocation *)userLocation

{

//NSLog(@"heading is %@",userLocation.heading);

}

//处理位置坐标更新

- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation

{

// NSLog(@"定位经纬度: lat %f,long %f",userLocation.location.coordinate.latitude,userLocation.location.coordinate.longitude);

//[GlobalsetCurrentPosition:userLocation.location.coordinate];

}

[BMKMapView willBackGround];// 百度地图api

ios开发高德地图怎么设置吹出框字体的大小

参考网站

前言

在ios上边使用地图库的同学肯定遇到过这样的问题:吹出框只能设置title和subtitle和左右的view,不管是百度地图还是高德地图还是自带的google地图,只提供了这四个属性,如果想添加更多的view,只能自定义。可是,类库只能看到.h文件,.m都看不到,这让新手比较蛋疼,庞大的地图类库一时半会摸不着头脑,从头再学还需要时间,本文就教大家快速制作一个属于自己的 CalloutView!等你一步一步调通后,再回过头来使用系统自带的方法设置callout,就会领悟这个过程。

正文

Xcode版本:4.6.1

SDK版本:6.0

百度地图版本:1.2.2(关于地图不必纠结,无论是百度还是高德还是google都是基于系统的MapKit,都是一样的)

demo模式:非ARC,使用storyboard。

demo资源:

Step1

创建demo,并添加百度地图的静态类库,helloword能显示mapview

关于这一步我专门写了教程,这里就不再赘述,同样,关于如何使用自带的BMKPointAnnotation添加一个marker,我也不再说了,如果连这个你都不会,那么先去官网看一下基本教程。

Step2

实现三个委托方法:

这个方法类似tableview添加cell,都是创建annotation

这个方法在点击地图marker时所触发(并显示callout)

原理:地图上的marker是在viewForAnnoation里创建的,同时也会隐含的为我们创建一个CalloutView,就是自带的吹出框,只是我们看不到源码。其实这个吹出框(CalloutView)也是一个annotation,也会在viewForAnnotation里被创建,他的坐标应该和这个点的marker坐标一样,只要明白了这一点,就行了,marker和吹出框是两个不同的annotation,他们有同样的coordinate。

Step3

自定义一个Annotation,为了简单方便,我就直接继承了mapview自带的BMKPointAnnotation,这是一个经典的

ios开发百度地图 怎么根据地址查询经纬度

(void)longPress:(UIGestureRecognizer*)gestureRecognizer {

if (gestureRecognizer.state == UIGestureRecognizerStateBegan){ //这个状态判断很重要

//坐标转换

CGPoint touchPoint = [gestureRecognizer locationInView:self.mapView];

CLLocationCoordinate2D touchMapCoordinate =

[self.mapView convertPoint:touchPoint toCoordinateFromView:self.mapView];

//这里的touchMapCoordinate.latitude和touchMapCoordinate.longitude就是想要的经纬度,

NSLog(@"%f",touchMapCoordinate.latitude);

NSLog(@"%f",touchMapCoordinate.longitude);

//30.264998 120.122538 30.285012 120.117989

LocationObject *aLocationObject = [[LocationObject alloc]initWithTitle:@"hello" latitue:touchMapCoordinate.latitude longitude:touchMapCoordinate.longitude];

aLocationObject._subTitleString = @"world";

NSMutableArray *_mapAnnotations = [[NSMutableArray alloc]initWithCapacity:1];

[_mapAnnotations addObject:aLocationObject];

[self.mapView addAnnotations:_mapAnnotations ];

[_mapAnnotations release];

[aLocationObject release];

}

}


当前文章:ios地图开发教程,iOS地图开发
转载来源:http://6mz.cn/article/dsdjgsh.html

其他资讯