示例中心
功能在线体验
控制台

高德 开发 Android 地图SDK 开发指南 实用工具 附近派单功能

更新时间:2017年01月22日

简介

高德地图 Android SDK 搜索包(AMap_Search_v2.6.x.jar)提供了附近派单功能。

1.什么是附近派单功能?

附近派单功能是面向中小型O2O企业的一整套功能接口。Android,iOS移动端提供附近的数据入口,云图服务端提供数据检索至开发者服务端的能力,高德根据移动端提供的数据,服务端访问设定的检索规则进行复杂的空间运算之后,返回用户数据排名。

附近派单功能的两种模式:

2.附近派单能够实现什么?

O2O开发者可以通过附近派单功能提供的用户数据排名结果结合自有业务逻辑,更精准的把控业务订单派发和资源调度。

3.附近派单应用在哪些场景?

(1)根据距离排名,合理的推荐上门美甲服务的接单美甲师。

(2)根据行车距离排名,推荐最近的货车司机师傅接单。

4.使用附近派单功能的流程

第一步、注册附近派单功能

在使用附近派单之前,需要对应用的密钥(Key)做相应的注册操作。支持多个移动端app做位置信息上传,及一个或多个app、或服务端之间实现位置信息排名的查看功能。

第二步、集成SDK

附近派单功能是Android SDK搜索包产品的一个功能模块,需在官网下载包含附近派单功能的SDK,并将其集成到自己的开发环境中即可。

第三步、开发

完成附近派单功能的注册和SDK集成后,即可开始具体功能的开发工作,如需在服务端检索距离排名请参考后文云图检索服务部分的详细介绍。

注册附近派单功能

注册附近派单是使用其相应功能的基础前提。通过注册可实现一个或多个应用之间的关系绑定,实现后续的位置数据排名空间检索。

进入附近派单功能的绑定及管理页面

初始化附近派单功能

在使用位置信息上传和周边位置信息检索之前,需要对功能模块进行初始化操作。

初始化的核心代码如下:

NearbySearch mNearbySearch = NearbySearch.getInstance(getApplicationContext());

信息上传

连续上传的数据包括用户位置信息和用户业务逻辑id信息。异步上传,实现NearbyListener接口的onNearbyInfoUploaded方法接收上传的回调结果。

连续位置信息上传的核心代码如下:

search.startUploadNearbyInfoAuto(new UploadInfoCallback() {
//设置自动上传数据和上传的间隔时间
@Override
public UploadInfo OnUploadInfoCallback() {
       UploadInfo loadInfo = new UploadInfo();
       loadInfo.setCoordType(NearbySearch.AMAP);
       //位置信息
       loadInfo.setPoint(latLonPoint);
       //用户id信息
       loadInfo.setUserID("用户的id");
       return loadInfo;
}
},10000);

单次上传的数据包括坐标系类型、用户位置信息和用户业务逻辑id信息,接口为异步上传,实现 NearbyListener 接口的 onNearbyInfoUploaded 方法接收上传的回调结果。

单次位置信息上传的核心代码如下:

//构造上传位置信息
UploadInfo loadInfo = new UploadInfo();
//设置上传位置的坐标系支持AMap坐标数据与GPS数据
loadInfo.setCoordType(NearbySearch.AMAP);
//设置上传数据位置,位置的获取推荐使用高德定位sdk进行获取
loadInfo.setPoint(latLonPoint);
//设置上传用户id
loadInfo.setUserID("用户的id");
//调用异步上传接口
NearbySearch.getInstance(getApplicationContext())
        .uploadNearbyInfoAsyn(loadInfo);

附近位置检索

可实现附近用户位置信息检索的能力。 检索过程支持距离、时间等约束条件;返回结果支持按照距离由近及远的排序。可以通过云图检索服务在业务服务端请求检索结果。

1、继承 NearbyListener 监听。

2、构造 NearbySearch 对象,并设置监听。

//获取附近实例(单例模式)
NearbySearch mNearbySearch = NearbySearch.getInstance(getApplicationContext());
//设置附近监听
NearbySearch.getInstance(getApplicationContext()).addNearbyListener(this);

3、通过 NearbyQuery 设置搜索条件,调用 NearbySearch 的 searchNearbyInfoAsyn() 方法发送请求。

//设置搜索条件
NearbyQuery query = new NearbyQuery();
//设置搜索的中心点
query.setCenterPoint(new LatLonPoint(39, 114));
//设置搜索的坐标体系
query.setCoordType(NearbySearch.AMAP);
//设置搜索半径
query.setRadius(10000);
//设置查询的时间
query.setTimeRange(10000);
//设置查询的方式驾车还是距离
query.setType(NearbySearchFunctionType.DRIVING_DISTANCE_SEARCH);
//调用异步查询接口
NearbySearch.getInstance(getApplicationContext())
        .searchNearbyInfoAsyn(query);

4、通过回调接口 onNearbyInfoSearched 解析返回的结果。

//周边检索的回调函数
public void onNearbyInfoSearched(NearbySearchResult nearbySearchResult,
        int resultCode) {
        //搜索周边附近用户回调处理
    if(resultCode == 1000){
    if (nearbySearchResult != null
        && nearbySearchResult.getNearbyInfoList() != null
        && nearbySearchResult.getNearbyInfoList().size() > 0) {
        NearbyInfo nearbyInfo = nearbySearchResult.getNearbyInfoList().get(0);
                mResultText.setText("周边搜索结果为size "+ nearbySearchResult.getNearbyInfoList().size() + "                                
                first:"+ nearbyInfo.getUserID() + "  " + nearbyInfo.getDistance()+ "  " 
                + nearbyInfo.getDrivingDistance() + "  "+ nearbyInfo.getTimeStamp() + "  "+  
                nearbyInfo.getPoint().toString());
        } else {
                       mResultText.setText("周边搜索结果为空");
        }
        }
     else{
             mResultText.setText("周边搜索出现异常,异常码为:"+resultCode);
     }
    }

通过云图服务端请求进行周边检索

通过请求串可以在业务逻辑服务中使用高德空间检索的能力对自有数据进行检索,获取按照距离、时间等维度约束的附近用户位置信息排序结果,详细内容请移步至云图-附近API查看。

清除用户信息

用户信息清除后,将不会再被检索到,比如接单的美甲师下班后可以清除其位置信息。

清除信息的核心代码如下:

//获取附近实例,并设置要清楚用户的id
NearbySearch.getInstance(getApplicationContext()).setUserID("test_test_test_1");
//调用异步清除用户接口
NearbySearch.getInstance(getApplicationContext())
        .clearUserInfoAsyn();

释放附近派单功能资源

在停止使用附近派单功能时,需释放资源。

初始化的核心代码如下:

//调用销毁功能,在应用的合适生命周期需要销毁附近功能
NearbySearch.destroy();
示例中心 功能
在线体验
常见问题