高德地图驾车路径规划详情获取

来源:互联网 发布:sql存储过程中使用游标 编辑:程序博客网 时间:2024/04/28 08:15

用到这个功能,花了不少时间,还是在大神的指点下才弄出来。没办法毕竟菜鸟一个,原来没有写博客的习惯,从来都是看大神的,然后去用,现在开始记录一下吧,。。。。菜鸟博客,有不对的地方轻喷。。。

从高德的sdk和demo里 找了半天,刚开始一直在3D地图里面找,寻找有关drive的类,不要怪 英文毕竟太菜。。。。也百度了一些相关的 ,但是我还是没弄出来….最后才找到原来这个东西在 AMap_Android_Navi SDK_All 这个demo里…这个demo里面有一个 GetNaviStepsAndLinksActivity 类,真是服了自己的智商….. 类的代码

public class GetNaviStepsAndLinksActivity extends BaseActivity {

private AMapNaviPath mAMapNaviPath;private List<AMapNaviStep> steps;private List<AMapNaviLink> links;private List<AMapNaviGuide> guides;@Overrideprotected void onCreate(Bundle savedInstanceState) {    mEndLatlng = new NaviLatLng(45.742367, 126.661665);    mStartLatlng = new NaviLatLng(22.373594, 113.562575);    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_basic_navi);    mAMapNaviView = (AMapNaviView) findViewById(R.id.navi_view);    mAMapNaviView.onCreate(savedInstanceState);    mAMapNaviView.setAMapNaviViewListener(this);}@Overridepublic void onNaviInfoUpdate(NaviInfo naviinfo) {    super.onNaviInfoUpdate(naviinfo);    int currentStep = naviinfo.getCurStep();    int currentLink = naviinfo.getCurLink();    Log.d("wlx", "当前Step index:" + currentStep + "当前Link index:" + currentLink);}@Overridepublic void onCalculateRouteSuccess() {    super.onCalculateRouteSuccess();    //概览    guides = mAMapNavi.getNaviGuideList();    //详情    mAMapNaviPath = mAMapNavi.getNaviPath();    steps = mAMapNaviPath.getSteps();    if (guides.size() == steps.size()) {        Toast.makeText(this, "看log", Toast.LENGTH_SHORT).show();        for (int i = 0; i < steps.size() - 1; i++) {            //guide step相生相惜,指的是大导航段            AMapNaviGuide guide = guides.get(i);            Log.d("wlx", "AMapNaviGuide 路线经纬度:" + guide.getCoord() + "");            Log.d("wlx", "AMapNaviGuide 路线名:" + guide.getName() + "");            Log.d("wlx", "AMapNaviGuide 路线长:" + guide.getLength() + "m");            Log.d("wlx", "AMapNaviGuide 路线耗时:" + guide.getTime() + "s");            Log.d("wlx", "AMapNaviGuide 路线IconType" + guide.getIconType() + "");            AMapNaviStep step = steps.get(i);            Log.d("wlx", "AMapNaviStep 距离:" + step.getLength() + "m" + " " + "耗时:" + step.getTime() + "s");            Log.d("wlx", "AMapNaviStep 红绿灯个数:" + step.getTrafficLightNumber());            //link指的是大导航段中的小导航段            links = step.getLinks();            for (AMapNaviLink link : links) {

// 请看com.amap.api.navi.enums.RoadClass,以及帮助文档
Log.d(“wlx”, “AMapNaviLink 道路名:” + link.getRoadName() + ” ” + “道路等级:” + link.getRoadClass());
// 请看com.amap.api.navi.enums.RoadType,以及帮助文档
Log.d(“wlx”, “AMapNaviLink 道路类型:” + link.getRoadType());

            }        }    } else {        Toast.makeText(this, "BUG!请联系我们", Toast.LENGTH_SHORT).show();    }}

}
还真是有点调皮,详情获取在 public void onCalculateRouteSuccess() 这个方法里面,相信大家都一看就会懂。

这里得到的icontype是高德指定的一堆数字,如果需要显示路况转向的图片的话,那么获得到这些数字之后要自己去对应图片显示,如果你不想去找本菜鸟可以贴几个出来
public class AMapNaviGuide {
/* @deprecated /
public static int IconTypeNone = 0;
/* @deprecated /
public static int IconTypeDefault = 1;
/* @deprecated /
public static int IconTypeLeft = 2;
/* @deprecated /
public static int IconTypeRight = 3;
/* @deprecated /
public static int IconTypeLeftFront = 4;
/* @deprecated /
public static int IconTypeRightFront = 5;
/* @deprecated /
public static int IconTypeLeftBack = 6;
/* @deprecated /
public static int IconTypeRightBack = 7;
/* @deprecated /
public static int IconTypeLeftAndAround = 8;
/* @deprecated /
public static int IconTypeStraight = 9;
/* @deprecated /
public static int IconTypeArrivedWayPoint = 10;
/* @deprecated /
public static int IconTypeEnterRoundabout = 11;
/* @deprecated /
public static int IconTypeOutRoundabout = 12;
/* @deprecated /
public static int IconTypeArrivedServiceArea = 13;
/* @deprecated /
public static int IconTypeArrivedTollGate = 14;
/* @deprecated /
public static int IconTypeArrivedDestination = 15;
/* @deprecated /
public static int IconTypeArrivedTunnel = 16;
/* @deprecated /
public static int IconTypeCrosswalk = 17;
/* @deprecated /
public static int IconTypeOverpass = 18;
/* @deprecated /
public static int IconTypeUnderpass = 19;
/* @deprecated /
public static int IconTypeSquare = 20;
/* @deprecated /
public static int IconTypePark = 21;
/* @deprecated /
public static int IconTypeStaircase = 22;
/* @deprecated /
public static int IconTypeLift = 23;
当然图片可以自己重新做, 这里实现路径详情显示展示出来就很简单了,自己写了list集合获取到数据之后用Adapter写入控件就行啦。。
好吧,就到这里了 本来想贴一下自己的代码,但是显示不出来 。不清楚情况。
希望能对大家有一点点帮助..

0 0
原创粉丝点击