高德地图SDK大致使用

1,我们先申请一个appkey,申请appkey必须注册高德开发者

2,高德SDK的下载,现在SDK分别有三个库,根据你的app 里面的集成需求,可以选择性的下载添加到自己的工程里,他们分别是 2D地图库,3D地图库,还有搜索库;

3,添加SDK进自己的项目(工程)里,添加的时候注意路径问题,添加完高德SDK之后,我们还需要添加一些系统自带库,有了这些才能支持高德SDK的运行,他们分别如下图

4,运行环境的配置,在TARGETS->Build Settings->Other Linker Flaggs 中添加-ObjC。

5,实现地图

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:YES];

    [MAMapServices sharedServices].apiKey = @"a2e716827857a145e86e99ea08cfe15f";

    _mapView = [[MAMapView alloc] initWithFrame:[UIScreen mainScreen].bounds];
    _mapView.mapType = MAMapTypeSatellite;// 设置地图样式,卫星
    _mapView.showTraffic = YES; // 是否打开实时交通路况
    _mapView.delegate = self;
    _mapView.logoCenter = CGPointMake(CGRectGetWidth(self.view.bounds)-55, 450);// 设置地图logo的中心点
    _mapView.showsCompass= YES; // 设置成 NO 表示关闭指南针;YES 表示显示指南针

    _mapView.showsScale = YES; // 设置成 NO 表示不显示比例尺;YES 表示显示比例尺
    _mapView.scaleOrigin= CGPointMake(_mapView.scaleOrigin.x, 22); // 设置比例尺位置
    _mapView.compassOrigin= CGPointMake(_mapView.compassOrigin.x, 22); // 设置指南针位置

    _mapView.showsUserLocation = YES; // 开启地图定位

    [_mapView setUserTrackingMode:MAUserTrackingModeFollow animated:YES]; // 设置用户跟宗模式

}

6,添加标注

MAPointAnnotation *pointAnnotation = [[MAPointAnnotation alloc] init];//初始化标注
    pointAnnotation.coordinate = CLLocationCoordinate2DMake(39.989631, 116.481018); //设置标注地理坐标
    pointAnnotation.title = @"方恒国际";//设置标注标题
    pointAnnotation.subtitle = @"阜通东大街 6 号";//设置标注子标题
    [_mapView addAnnotation:pointAnnotation];//添加标注
- (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id<MAAnnotation>)annotation
{
        if ([annotation isKindOfClass:[MAPointAnnotation class]]) {
            static NSString *pointReuseIndetifier = @"pointReuseIndetifier";
            MAPinAnnotationView*annotationView = (MAPinAnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:pointReuseIndetifier];
            if (annotationView == nil) {
                annotationView = [[MAPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:pointReuseIndetifier];
            }
            annotationView.canShowCallout= YES; //设置气泡可以弹出,默认为 NO

            annotationView.animatesDrop = YES; //设置标注动画显示,默认为 NO

            annotationView.draggable = YES; //设置标注可以拖动,默认为 NO annotationView.pinColor = MAPinAnnotationColorPurple;
            return annotationView;
        }
        return nil;

}

- (void)mapView:(MAMapView *)mapView didUpdateUserLocation:(MAUserLocation *)userLocation{
//    NSLog("latitude : %f,longitude: %f",userLocation.coordinate.latitude,userLocation.coordinate.l ongitude);
    NSLog(@"latitude : %f,longitude: %f", userLocation.coordinate.latitude,userLocation.coordinate.longitude);

}

7,编码、反编码

- (void)viewDidLoad {
    [super viewDidLoad];

    _search = [[AMapSearchAPI alloc] initWithSearchKey:@"a2e716827857a145e86e99ea08cfe15f" Delegate:self];  //初始化搜索
    AMapGeocodeSearchRequest *georequest = [[AMapGeocodeSearchRequest alloc] init]; //构造一个request对象
    georequest.searchType = AMapSearchType_Geocode; //设置为地理编码样式
    georequest.address = @"北大"; //地址
    georequest.city = @[@"北京"];//所在城市
    [_search AMapGeocodeSearch:georequest]; //发起地理编码

    // Do any additional setup after loading the view, typically from a nib.
}

#pragma mark 地理编码成功的回调
- (void)onGeocodeSearchDone:(AMapGeocodeSearchRequest *)request response:(AMapGeocodeSearchResponse *)response
{

    if (response.count == 0) {
        return;
    }
    NSString *string = [NSString stringWithFormat:@"%ld", response.count];
    for (AMapTip *tip in response.geocodes) {//response.geocodes所有跟地址匹配的地点
        NSLog(@"%@", [NSString stringWithFormat:@"%@", tip.description]);
    }

}
   _search = [[AMapSearchAPI alloc] initWithSearchKey:@"a2e716827857a145e86e99ea08cfe15f" Delegate:self];  //初始化搜索
    AMapReGeocodeSearchRequest *georequest = [[AMapReGeocodeSearchRequest alloc] init]; //构造一个request对象
    georequest.searchType = AMapSearchType_ReGeocode; //设置为反地理编码样式
    georequest.location = [AMapGeoPoint locationWithLatitude:39.000 longitude:116.00];//设置所在地里位置的经纬度
    georequest.radius = 1000;//搜索半径
    georequest.requireExtension = YES;// 是否返回扩展信息,默认为 NO
    [_search AMapGeocodeSearch:georequest]; //发起反地理编码
#pragma mark 反地理编码成功
- (void)onReGeocodeSearchDone:(AMapReGeocodeSearchRequest *)request response:(AMapReGeocodeSearchResponse *)response
{
    if (response.regeocode != nil) {
        //处理搜索结果
        NSString *result = [NSString stringWithFormat:@"%@", response.regeocode];
    }
}
时间: 2024-12-22 06:55:24

高德地图SDK大致使用的相关文章

Android 快速掌握高德地图SDK(内含实践项目)

上周学习了高德地图和极光推送的SDK,需要在项目中用到,不过学习起来还是费了一番功夫去看文档和Demo代码的.(不得不吐槽部分文档真的无厘头,只有简单的实例程序注释都没有,上下文还不对接,真是醉了),所以打算把最直白的步骤写在博客中,也希望能帮到还不会用这两种SDK的小伙伴们,少走弯路,提高工作效率. 本文主要介绍高德地图SDK的使用步骤: 包括从获取Key,到导包,到布局文件,以及编码实现. 还有两个最常用的功能: 实现定位自身. 根据地名或者坐标实现搜索定位并显示小蓝点. 一.获取高德Key

iOS8 高德地图SDK MAMapView无法定位的问题

在iOS8的设备上,使用高德地图SDK你会发现MAMapView里的回调位置是空的. -(void)mapView:(MAMapView*)mapView didUpdateUserLocation:(MAUserLocation*)userLocation updatingLocation:(BOOL)updatingLocation { CLLocation *currentLocation = userLocation.location; if (currentLocation) { }

安卓开发—导入高德地图sdk后工程中无法找到相应的包

声明:本人小白,刚刚学习安卓开发,以下是自己开发中遇到的一些问题,将解决方法贴出来供大家参考,求大神勿喷-- 想学习使用高德地图的API,从官网下载了相应的sdk,按照参考文档的方法将相应的地图包,搜索包导入libs文件夹,以及进行了相关配置,我确信我真的是一步步来的没有错-- 然而,我在编写代码的时候,却根本没有这个包!!!! 为此,我几乎花了三天下午的时间找各种原因还是没有找到   = =|||  (不要喷我!!!) 也试了各种从网上查的方法,不过没有效果,最后还是自己找出来的-- 解决方法

ios开发--高德地图SDK使用简介

高德LBS开放平台将高德最专业的定位.地图.搜索.导航等能力,以API.SDK等形式向广大开发者免费开放.本章节我们来简单学习一下如何使用它的定位及地图SDK. 一.相关框架及环境配置 地图SDK 对于如何下载SDK,它的官方文档提供了很详细的说明,使用CocoaPods.如果你没有安装CocoaPods,也可以在它的官网直接下载. 接下来只需要将SDK引入工程,完成相关的环境配置即可.在它的官方文档中有详细说明,这里就不重复了. 地图SDK文档 定位SDK 高德 iOS 定位 SDK 提供了不

高德地图SDK使用经验

下文说的是高德地图 Android SDK版本,详细版本如下: 2D地图:v2.3.1 定位:v1.3.0 导航:v1.1.1 发现的问题如下,其中一些疑是地图BUG,一些是需要你自己小心的地方: 1.定位. public void requestLocationData(java.lang.String provider, long minTime, float minDistance, AMapLocationListener listener) 对于第二个参数,会影响所有回调接口的回调时间

高德地图SDK使用教训

下文说的是高德地图 Android SDK版本,详细版本如下: 2D地图:v2.3.1 定位:v1.3.0 发现的问题如下,其中一些是地图BUG,一些是需要你自己小心的地方: 1.定位. public void requestLocationData(java.lang.String provider, long minTime, float minDistance, AMapLocationListener listener) 对于第二个参数,会影响所有回调接口的回调时间.官方的邮件回复是说,

【高德地图SDK】如何实现轨迹平滑移动?

很多人应该都有类似的经历,叫完车,想看看车离我还有多远距离?但手机屏幕上的车不是一动不动,就是一跳一跳的漂移. 目前市面上大多产品“轨迹平滑移动”做的并不好. 市面上只有快的打车和一号专车实现了平滑移动,那么这是怎么做的呢? ------------------------------------------------------------------------------------------------------- iOS轨迹平滑 点击,查看Demo及源代码 iOS_MovingA

android: 在APP中显示高德地图SDK

一.搭建环境 参考资料:http://lbs.amap.com/api/android-sdk/guide/create-project/android-studio-create-project 1)新建一个工程: 2)到高德开放平台申请key,可以参考:http://lbs.amap.com/api/android-sdk/guide/create-project/get-key 3)在AndroidManifest.xml的application标签内添加 <meta-data andro

利用高德地图完成用户地图选址,包括搜索位置和标签固定居中

这两天一直捣鼓着地图的选址功能,需要达到的要求是:1,能用户定位  2,大头针固定在地图中心,拖动地图停止后获取到该大头针的位置信息    3,能通过搜索框搜索到我们输入的地址 主要思路:大头针分为两个   一个是用户的位置大头针  另一个是所选取的位置的大头针(包括拖动后的大头针和搜索功能查找到位置的大头针,公用一个大头针  )并且两个大头针都成为控制器器属性. 我使用到的高德地图sdk是: 'AMap3DMap' , '5.2.1' #高德3D地图 'AMapSearch' , '5.2.1