开发 出行解决方案接入规范 行程前-相关服务 展示附近车辆 展示附近车辆-iOS

展示附近车辆-iOS 最后更新时间: 2021年01月22日

一、获取key

1、创建新应用

进入控制台,创建一个新应用.如果您之前已经创建过应用,可直接跳过这个步骤.

   

  

2、添加新key

在创建的应用上点击"添加新Key"按钮,在弹出的对话框中,依次输入应用名名称,选择绑定的服务为“iOS平台”,输入您的key名称Bundle ID,如下图所示:

需要注意的是: 1个KEY只能用于一个应用,1个Key在多个应用上使用会出现服务调用失败.

   

  

在阅读完高德地图API服务条款后,勾选此选项,点击“提交”,完成 Key 的申请,此时您可以在所创建的应用下面看到刚申请的 Key 了.

如何获取 Bundle Identifier?

以下为您提供两种获取 Bundle Identifier 的方法.

方法一

通过代码获取,代码如下所示:


NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];

方法二

Xcode 切换到 General 标签,查看 Bundle Identifier,如下图所示:

   

   

3、开通权限

需要联系高德对应接口人开通附近运力权限.

4、配置key

引入基础SDK头文件#import <AMapFoundationKit/AMapFoundationKit.h>并添加如下示例代码,配置之前在官申请的高德Key.


[AMapServices sharedServices].apiKey = @"您的key";

二、集成SDK包

1、CocoaPods配置

配置podfile, 在里面添加如下配置:


platform :ios, '8.0'
target '您的工程名' do
pod 'AMap3DMap'
pod 'AMapSearch'
end

2、手动配置

参考http://lbs.amap.com/api/ios-sdk/guide/create-project/manual-configuration

三、快速接入

1、创建MANearbyCarController


self.nearbyCarController = [[MANearbyCarController alloc] initWithMapView:self.mapView delagate:self];
self.nearbyCarController.carImage = [UIImage imageNamed:@"car1"];

2、配置MANearbyCarController

1)初始化配置

/**
*@brief 在对应的地图delegate方法中调用此方法
*@param mapView 地图
*@param wasUserAction 是否用户触发
*/
- (void)mapView:(MAMapView *)mapView mapWillMoveByUser:(BOOL)wasUserAction {
    [self.nearbyCarController mapView:mapView mapWillMoveByUser:wasUserAction];
}

/**
*@brief 在对应的地图delegate方法中调用此方法
*@param mapView 地图
*@param wasUserAction 是否用户触发
*/
- (void)mapView:(MAMapView *)mapView mapDidMoveByUser:(BOOL)wasUserAction {
    [self.nearbyCarController mapView:mapView mapDidMoveByUser:wasUserAction];
}

/**
*@brief 在对应的地图delegate方法中调用此方法
*@param mapView 地图
*@param wasUserAction 是否用户触发
*/
- (void)mapView:(MAMapView *)mapView mapDidZoomByUser:(BOOL)wasUserAction {
    [self.nearbyCarController mapView:mapView mapDidZoomByUser:wasUserAction];
}

/**
*@brief 在对应的地图delegate方法中调用此方法
*@param mapView 地图
*@param views annotationView
*/
- (void)mapView:(MAMapView *)mapView didAddAnnotationViews:(NSArray *)views {
    [self.nearbyCarController mapView:mapView didAddAnnotationViews:views];
}

/**
*@brief 在对应的地图delegate方法中调用此方法
*@param mapView 地图
*@param annotation 标注
*@return 返回上车点功能需要的annotationview,一类是上车点,一类是大头针锚点
*/
- (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id <MAAnnotation>)annotation {
    if([self.nearbyCarController isInternalAnnotation:annotation]) {
        return [self.nearbyCarController mapView:mapView viewForAnnotation:annotation];
    }
    
    return nil;
}

/**
*@brief 地图区域即将改变时会调用此接口
*@param mapView 地图View
*@param animated 是否动画
*/
- (void)mapView:(MAMapView *)mapView regionWillChangeAnimated:(BOOL)animated {
    [self.nearbyCarController mapView:mapView regionWillChangeAnimated:animated];
}

/**
* @brief地图区域改变完成后会调用此接口
*@param mapView 地图View
*@param animated 是否动画
*/
- (void)mapView:(MAMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
    [self.nearbyCarController mapView:mapView regionDidChangeAnimated:animated];
}

四、使用接口获取周边车辆

MANearbyCarService.h
/**
 * @brief 查询周围上车点
 * @param request 请求
 * @param callback 结果回调
 * @return NSOperation 对象
 */
- (NSOperation *)queryNearbyCarsWith:(MANbCarRequest *)request callback:(void(^)(MANbCarResponse *response, NSError* error))callback;

高级功能

功能1:    同时请求多种车辆类型

构造方法(同时请求多种类型)
///多个车辆类型,以逗号','分隔 如"1,2"表示请求出租车和新能源车。所有分类, 1:出租车, 2:新能源, 3:舒适型, 4:豪华型, 5:商务型.
@property (nonatomic, assign) NSString *vehicleTypes;

功能2:    设置车辆图标

设置车辆图标
///小车图片
@property (nonatomic, strong) UIImage *carImage;
获取设置的车辆图标
///设置多种不同车辆类型的小车图片,其中key为车辆类型vehicleType对应的string
@property (nonatomic, strong) NSDictionary<NSString*, UIImage*> *carImages;

功能3:    设置车辆显示半径

设置显示半径
//请求半径,单位公里,默认2。最小值2,数字需为2的倍数。最大值以服务端为准,目前20
@property (nonatomic, assign) NSInteger radius;

功能4:    设置车辆显示最大数量

设置返回的最大车辆个数
///最大请求数,默认5,取值范围1-20
@property (nonatomic, assign) NSInteger maxCounts;

更多详情查看附近运力参考手册


返回顶部 示例中心 常见问题 智能客服 公众号
二维码