ios 高德地图

本文详细介绍如何通过CocoaPods安装并配置高德地图SDK,实现地图展示、定位及周边搜索等功能。涵盖Pod库安装步骤、配置过程及关键代码示例。

先附上高德地图官网

第一步:cocopods安装sdk

  pod 'AMap3DMap' #3D地图sdk
  pod 'AMapSearch' #地图SDK搜索功能 
  pod 'AMapLocation' #定位SDK 
复制代码

高德 iOS SDK 的 Pod 库的名称如下图:


第二步:plist文件配置

在plist文件中添加字段Privacy - Location When In Use Usage Description和Privacy - Location Always and When In Use Usage Description,然后集成就完毕了^-^。

第三步:AppDelegate配置

在AppDelegate文件导入头文件#import<AMapFoundationKit/AMapFoundationKit.h>,并添加如下代码

[AMapServices sharedServices].apiKey = @"您的Key";
复制代码

第四步:在调用的视图中导入如下头文件:

#import <AMapFoundationKit/AMapFoundationKit.h>
#import <MAMapKit/MAMapKit.h>
#import <AMapSearchKit/AMapSearchAPI.h>
复制代码

地图(MKMapView)的使用

- (MAMapView *)header {
    if (_header == nil) {
        _header = [[MAMapView alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth,kScreenHeight - [UIApplication sharedApplication].statusBarFrame.size.height - 44)];
        _header.delegate = self;
        // 打开定位
        _header.showsUserLocation = YES;
        _header.userTrackingMode = MAUserTrackingModeFollow;
        // 设定定位精度。默认为kCLLocationAccuracyBest
        _header.desiredAccuracy = kCLLocationAccuracyBest;
        // 是否显示指南针
        _header.showsCompass = NO;
        // 设定定位的最小更新距离。默认为kCLDistanceFilterNone,会提示任何移动
        _header.distanceFilter = 15.0f;
        // 是否显示比例尺,默认为YES
        _header.showsScale = YES;
        // 是否支持缩放,默认为YES
        _header.zoomEnabled = YES;
        // 是否支持平移,默认为YES
        _header.scrollEnabled = YES;
        // 缩放级别
        _header.zoomLevel = 15;
    }
    return _header;
} 
复制代码

获取地理位置

- (void)onReGeocodeSearchDone:(AMapReGeocodeSearchRequest *)request response:(AMapReGeocodeSearchResponse *)response {
    AMapReGeocode *reGeocodeModel = response.regeocode;
    
    if (response.regeocode != nil) {
        
        MAPointAnnotation *pointAnnotation = [[MAPointAnnotation alloc] init];
        _pointAnnotaiton = pointAnnotation;
        pointAnnotation.coordinate = self.header.userLocation.coordinate;
        
        //去掉重复大头针
        [self.header removeOverlays:self.header.overlays];
        [self.header removeAnnotations:self.header.annotations];
        //将大头针添加到地图中
        [self.header addAnnotation:pointAnnotation];
        //默认选中气泡
        [self.header selectAnnotation:pointAnnotation animated:YES];
        
    }
    
    // 坐标
    NSLog(@"%@",response.regeocode.formattedAddress);
} 复制代码

移动地图大头针位置跟新在地图中间

- (void)mapView:(MAMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
    self.pointAnnotaiton.coordinate = mapView.centerCoordinate;
}
复制代码

周边搜索回调

-(void)onPOISearchDone:(AMapPOISearchBaseRequest *)request response:(AMapPOISearchResponse *)response {
    dispatch_async(dispatch_get_main_queue(), ^{
        if (response.pois.count>0) {
            self.dataArray = [response.pois mutableCopy];
            [self.tableView reloadData];
        }
    });
}
复制代码

搜索请求发起后的失败回调

-(void)AMapSearchRequest:(id)request didFailWithError:(NSError *)error{
    NSLog(@"request: %@------error:  %@",request,error);
}
复制代码

定位更新回调

-(void)mapView:(MAMapView *)mapView didUpdateUserLocation:(MAUserLocation *)userLocation updatingLocation:(BOOL)updatingLocation
{
    if(updatingLocation)
    {
        //取出当前位置的坐标
        NSLog(@"latitude : %f,longitude: %f",userLocation.coordinate.latitude,userLocation.coordinate.longitude);
        _currentLocation = [userLocation.location copy];
    }
    
}
复制代码

效果如下图:

          

          



转载于:https://juejin.im/post/5b76758c6fb9a009bf1baa1b

内容概要:本文系统阐述了Java Persistence API(JPA)的核心概念、技术架构、核心组件及实践应用,重点介绍了JPA作为Java官方定义的对象关系映射(ORM)规范,如何通过实体类、EntityManager、JPQL和persistence.xml配置文件实现Java对象与数据库表之间的映射与操作。文章详细说明了JPA解决的传统JDBC开发痛点,如代码冗余、对象映射繁琐、跨数据库兼容性差等问题,并解析了JPA与Hibernate、EclipseLink等实现框架的关系。同时提供了基于Hibernate和MySQL的完整实践案例,涵盖Maven依赖配置、实体类定义、CRUD操作实现等关键步骤,并列举了常用JPA注解及其用途。最后总结了JPA的标准化优势、开发效率提升能力及在Spring生态中的延伸应用。 适合人群:具备一定Java基础,熟悉基本数据库操作,工作1-3年的后端开发人员或正在学习ORM技术的中级开发者。 使用场景及目标:①理解JPA作为ORM规范的核心原理与组件协作机制;②掌握基于JPA+Hibernate进行数据库操作的开发流程;③为技术选型、团队培训或向Spring Data JPA过渡提供理论与实践基础。 阅读建议:此资源以理论结合实践的方式讲解JPA,建议读者在学习过程中同步搭建环境,动手实现文中示例代码,重点关注EntityManager的使用、JPQL语法特点以及注解配置规则,从而深入理解JPA的设计思想与工程价值。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值