使用的是百度地图的API,地址是:androidsdk | 百度地图API SDK

步骤一:配置build.gradle

dependencies {implementation 'com.baidu.lbsyun:BaiduMapSDK_Location:9.1.8'compile 'com.baidu.lbsyun:BaiduMapSDK_Map:7.4.0'compile 'com.baidu.lbsyun:BaiduMapSDK_Search:7.4.0'
}

步骤二:创建路线规划检索实例

mSearch = RoutePlanSearch.newInstance();

步骤三:创建路线规划检索结果监听器

OnGetRoutePlanResultListener listener = new OnGetRoutePlanResultListener() {@Overridepublic void onGetWalkingRouteResult(WalkingRouteResult walkingRouteResult) {//创建WalkingRouteOverlay实例WalkingRouteOverlay overlay = new WalkingRouteOverlay(mBaiduMap);if (walkingRouteResult.getRouteLines().size() > 0) {//获取路径规划数据,(以返回的第一条数据为例)//为WalkingRouteOverlay实例设置路径数据overlay.setData(walkingRouteResult.getRouteLines().get(0));//在地图上绘制WalkingRouteOverlayoverlay.addToMap();}}......
};

全部代码:

package com.meal;import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.search.core.RouteLine;
import com.baidu.mapapi.search.core.SearchResult;
import com.baidu.mapapi.search.route.BikingRouteResult;
import com.baidu.mapapi.search.route.DrivingRouteResult;
import com.baidu.mapapi.search.route.IndoorRouteResult;
import com.baidu.mapapi.search.route.MassTransitRouteResult;
import com.baidu.mapapi.search.route.OnGetRoutePlanResultListener;
import com.baidu.mapapi.search.route.PlanNode;
import com.baidu.mapapi.search.route.RoutePlanSearch;
import com.baidu.mapapi.search.route.TransitRouteResult;
import com.baidu.mapapi.search.route.WalkingRoutePlanOption;
import com.baidu.mapapi.search.route.WalkingRouteResult;
import com.map.WalkingRouteOverlay;
import com.pony.base.BaseActivity;
import com.pony.config.Consts;
import com.pony.db.MemberUserUtils;
import com.pony.model.ChoiceAddressModel;
import com.pony.model.OrderModel;
import com.pony.model.ResponseEntry;
import com.pony.util.ToastUtil;
import com.pony.view.CustomToast;import net.tsz.afinal.http.AjaxParams;import java.util.HashMap;public class ShowLineActivity extends BaseActivity implements OnGetRoutePlanResultListener {// titleprivate TextView mTvTitle, setting_text;// 返回private ImageView mIvBack;// 查询按钮private MapView mMapView = null;private BaiduMap baiduMap;LinearLayout mllGoBuy;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_showline);initWidget();initData();}@Overridepublic void initWidget() {mMapView = (MapView) findViewById(R.id.bmapView);baiduMap = mMapView.getMap();setting_text = (TextView) findViewById(R.id.setting_text);mIvBack = (ImageView) findViewById(R.id.mIvBack);mTvTitle = (TextView) findViewById(R.id.mTvTitle);mTvTitle.setText("显示线路");mIvBack.setVisibility(View.VISIBLE);mIvBack.setOnClickListener(this);mllGoBuy = (LinearLayout) findViewById(R.id.mllGoBuy);mllGoBuy.setOnClickListener(this);}// 搜索模块,也可去掉地图模块独立使用private RoutePlanSearch mSearch = null;private WalkingRouteResult mWalkingRouteResult = null;private RouteLine mRouteLine = null;ChoiceAddressModel startInfor;ChoiceAddressModel endInfor;@Overridepublic void initData() {String startInfor = this.getIntent().getStringExtra("startInfor");String endInfor = this.getIntent().getStringExtra("endInfor");LatLng mStartPoint = new LatLng(Double.valueOf(startInfor.split(",")[0]), Double.valueOf(startInfor.split(",")[1]));LatLng mEndPoint = new LatLng(Double.valueOf(endInfor.split(",")[0]), Double.valueOf(endInfor.split(",")[1]));// 初始化搜索模块,注册事件监听mSearch = RoutePlanSearch.newInstance();mSearch.setOnGetRoutePlanResultListener(this);//        // 设置起终点信息 起点参数PlanNode startNode = PlanNode.withLocation(mStartPoint);// 终点参数PlanNode endNode = PlanNode.withLocation(mEndPoint);
////        // 实际使用中请对起点终点城市进行正确的设定mSearch.walkingSearch((new WalkingRoutePlanOption()).from(startNode) // 起点.to(endNode)); // 终点}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.mIvBack:ShowLineActivity.this.finish();break;case R.id.mllGoBuy:addOrder(true);break;}}/*** 订单的添加** @param isShow*/private void addOrder(boolean isShow) {AjaxParams params = new AjaxParams();params.put("action_flag", "addOrder");params.put("orderStartLatLng", this.getIntent().getStringExtra("startInfor"));params.put("orderEndLatLng", this.getIntent().getStringExtra("endInfor"));params.put("orderAddressStart", this.getIntent().getStringExtra("startAddress"));params.put("orderAddressEnd", this.getIntent().getStringExtra("endAddress"));params.put("orderLongTime", distanceInfor / 60 + "分钟");params.put("orderDistance", distanceInfor + "米");params.put("orderUserId", MemberUserUtils.getUid(this));params.put("orderUserName", MemberUserUtils.getName(this));httpPost(Consts.URL + Consts.APP.MessageAction, params, Consts.actionId.resultFlag, isShow, "正在加载...");}@Overrideprotected void callBackSuccess(ResponseEntry entry, int actionId) {super.callBackSuccess(entry, actionId);CustomToast.showToast(this, "保存成功");new Handler().postDelayed(new Runnable() {@Overridepublic void run() {finish();}}, 2000);}@Overrideprotected void callBackAllFailure(String strMsg, int actionId) {super.callBackAllFailure(strMsg, actionId);ToastUtil.show(this, strMsg);}double distanceInfor;@Overridepublic void onGetWalkingRouteResult(WalkingRouteResult walkingRouteResult) {if (walkingRouteResult.error == SearchResult.ERRORNO.AMBIGUOUS_ROURE_ADDR) {AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setTitle("提示");builder.setMessage("检索地址有歧义,请重新设置。\n可通过getSuggestAddrInfo()接口获得建议查询信息");builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}});builder.create().show();return;}Log.i("pony_log", walkingRouteResult.getRouteLines().size() + "");WalkingRouteOverlay overlay = new WalkingRouteOverlay(baiduMap);if (walkingRouteResult.getRouteLines().size() > 0) {distanceInfor = walkingRouteResult.getRouteLines().get(0).getDistance();Log.i("pony_log", walkingRouteResult.getRouteLines().get(0).getDistance() + "");setting_text.setText("路径时间:" + walkingRouteResult.getRouteLines().get(0).getDistance() / 60 + "分钟");//获取路径规划数据,(以返回的第一条数据为例)//为WalkingRouteOverlay实例设置路径数据overlay.setData(walkingRouteResult.getRouteLines().get(0));//在地图上绘制WalkingRouteOverlayoverlay.addToMap();overlay.zoomToSpan();}}@Overridepublic void onGetTransitRouteResult(TransitRouteResult transitRouteResult) {}@Overridepublic void onGetMassTransitRouteResult(MassTransitRouteResult massTransitRouteResult) {}@Overridepublic void onGetDrivingRouteResult(DrivingRouteResult drivingRouteResult) {}@Overridepublic void onGetIndoorRouteResult(IndoorRouteResult indoorRouteResult) {}@Overridepublic void onGetBikingRouteResult(BikingRouteResult bikingRouteResult) {}private boolean mUseDefaultIcon = false;private class MyWalkingRouteOverlay extends WalkingRouteOverlay {private MyWalkingRouteOverlay(BaiduMap baiduMap) {super(baiduMap);}@Overridepublic BitmapDescriptor getStartMarker() {if (mUseDefaultIcon) {return BitmapDescriptorFactory.fromResource(R.drawable.icon_st);}return null;}@Overridepublic BitmapDescriptor getTerminalMarker() {if (mUseDefaultIcon) {return BitmapDescriptorFactory.fromResource(R.drawable.icon_en);}return null;}}}

安卓百度地图之步行路径规划相关推荐

  1. Android安卓百度地图定位+导航+路径规划实现APP(源码+APK) 毕业设计

    百度地图实时定位+导航路径规划的实现APP 本科生毕业设计:<一种智能停车系统的设计>,成都信息工程大学,2018 使用到的技术 百度地图SDK LBS云数据管理 路径规划与导航 二维码扫 ...

  2. 百度地图检索以及路径规划

    代码地址如下: http://www.demodashi.com/demo/11030.html 一.准备工作 需要集成百度地图SDK 需要申请百度地图AppKey 本例子实现了POI检索以及详情检索 ...

  3. 百度地图js简单路径规划

    lujing.html <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content= ...

  4. 结合奥维地图与百度地图api进行路径规划开发测试(python、HTML)

    第一步:奥维地图如何得到规划路径上轨迹点的经纬度(参见我之前的博客). 第二步:各种坐标系转换,选择对应转换坐标系以及输入输出文件路径后可以直接调用(python批量转换,每次运行前清空输出文件res ...

  5. 高德地图API武汉某区域的步行路径规划

    高德地图API的武汉某区域的步行路径规划 利用python的requests函数,基于高德地图 网页服务API 使用地理编码化.步行路径规划等开发方法 以武汉武昌.青山交界处以区域为例 做已有出行点至 ...

  6. Android 调用百度地图sdk 实现路线规划导航

    Android 调用百度地图sdk 实现路线规划导航 功能: 实现实时/需求定位 卫星地图查看 路况 周边poi检索 地点输入提示检索 驾驶 步行 公交 骑行路线规划 注:以上为实现的大概功能 ,接下 ...

  7. android高德地图线路,独立路径规划-路线规划-开发指南-Android 导航SDK | 高德地图API...

    基本介绍 独立路径规划是指路径规划的结果不会自动应用于当前导航,也不会干扰当前的导航,需要手动调用API传入路径规划结果来开始导航.可用于不干扰本次导航的单独路径规划场景,比如路线预览等.适用于驾车/ ...

  8. 常用的地图导航和路径规划算法

    作者:李传学 链接:https://www.zhihu.com/question/24870090/answer/73834896 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

  9. 安卓百度地图之定位图标在地图上显示

    此文章接上一篇文件:安卓百度地图之定位_zpon_wangxuan的博客-CSDN博客,对于地图上显示定位图标就是在地图上添加一个地图的marker就可以了: 布局文件代码: <LinearLa ...

最新文章

  1. 如何“愚弄”人工智能?
  2. 苹果2010新品发布会图文实录
  3. 网站基本维护躲不过这三点!
  4. 精通python能干嘛-很多人说精通Python?对于精通我们存在哪些误区
  5. 顺序表应用3:元素位置互换之移位算法
  6. PostgreSQL数据库设置远程连接
  7. java map 实现 序列化,MapReduce序列化
  8. Luogu P3521 [POI2011]ROT-Tree Rotations
  9. java中一级缓存_java – 集群环境中的hibernate一级缓存
  10. MySQL 8.0安装记录
  11. 如何使用微PE工具箱制作U盘PE
  12. 获取微信公众号二维码接口
  13. php输出甲子年,甲子年是哪一年?甲子年生人今年多大?
  14. 苹果手机(iPhone)系统升级到IOS16.1后,发现连接WiFi、热点总是经常自动(随机)断开
  15. oracle varchar,date互转,number,varchar互转
  16. 【078】比才歌剧《卡门》序曲
  17. 从成本角度理解盈利和亏损
  18. java bearer token_如何正确使用Bearer令牌?
  19. html中正方形选择,html中正方形的单选框怎么设置
  20. 你的博客赚钱了吗?博告网详细介绍

热门文章

  1. Coupled Generative Adversarial Networks(小白学GAN 九)
  2. 华为工程师走入南科大C/C++程序设计课堂
  3. Serializer序列化的使用
  4. 使用canvas画个太阳系
  5. 在电子化的今天,孩子还需要练字吗?
  6. vue项目nginx代理图片访问请求
  7. 数据库表之间关系与实体类的对应
  8. Mac配置开发环境(后端)和软件安利
  9. SQL SERVE 的数据库安全性研究
  10. 四十四、nimbus,supervisor进程自动停止(Read a frame size of ..., which is bigger than the maximum allowable...)