android百度地图开发V4.5最新版(5)---路线规划问题步行,骑车,公交,驾车等。

这篇博客只做步行路线规划的实现。其他的都是大同小异。废话不多说,直接上代码。

1:新建xml文件,增加布局:

 <!-- 放入百度地图的mapview -->
    <com.baidu.mapapi.map.MapView
        android:id="@+id/bmapsView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true" />

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_toLeftOf="@+id/button1">
        <!-- 起点输入框 -->
        <EditText
            android:id="@+id/editText1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="50"
            android:layout_weight="1"
            android:hint="请输入起点">
        </EditText>
        <!-- 终点输入框 -->
        <EditText
            android:id="@+id/editText2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="50"
            android:layout_weight="1"
            android:hint="请输入终点">
        </EditText>
    </LinearLayout>
    <!-- 搜索执行按钮 -->
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:text="《搜索》" />
</RelativeLayout>
    <ListView
        android:id="@+id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    </ListView>
这里的listview的作用格式展示路线的point节点信息。

2:建立SDKlistioner监听

OnGetRoutePlanResultListener listener = new OnGetRoutePlanResultListener() {
    @Override
    //步行
    public void onGetWalkingRouteResult(WalkingRouteResult walkingRouteResult) {
        if (walkingRouteResult == null) {
            Toast.makeText(LuxianActivity.this, "抱歉,未找到结果", Toast.LENGTH_SHORT).show();
            return;
        }
        WalkingRouteLine route = walkingRouteResult.getRouteLines().get(0);
        List<WalkingRouteLine.WalkingStep> walkingStepList =route.getAllStep();
        for (WalkingRouteLine.WalkingStep walkingStep:walkingStepList){

            Map<String, String> map1 = new HashMap<String, String>();
            map1.put("经纬度",walkingStep.getInstructions());
            data.add(map1);
            setListAdapter(new SimpleAdapter(LuxianActivity.this,data,android.R.layout.simple_list_item_1,
                    new String[]{"经纬度"},            //每行显示一个姓名
                    new int[]{android.R.id.text1}));   //名字在text1上显示));
            Log.e("路线", walkingStep.getInstructions());
        }
        WalkingRouteOverlay overlay = new WalkingRouteOverlay(mBaiduMap);
        mBaiduMap.setOnMarkerClickListener(overlay);
        routeOverlay = overlay;
        //设置路线数据
        overlay.setData(walkingRouteResult.getRouteLines().get(0));
        overlay.addToMap();  //将所有overlay添加到地图中
        overlay.zoomToSpan();//缩放地图

    }

    @Override
    //公交
    public void onGetTransitRouteResult(TransitRouteResult transitRouteResult) {

    }

    @Override
    public void onGetMassTransitRouteResult(MassTransitRouteResult massTransitRouteResult) {

    }

    @Override
    //驾车
    public void onGetDrivingRouteResult(DrivingRouteResult drivingRouteResult) {

    }

    @Override
    //室内
    public void onGetIndoorRouteResult(IndoorRouteResult indoorRouteResult) {

    }

    @Override
    //骑行
    public void onGetBikingRouteResult(BikingRouteResult bikingRouteResult) {

    }
};
3:输入起始点和终止点

PlanNode stNode = PlanNode.withCityNameAndPlaceName("北京", start);
PlanNode enNode = PlanNode.withCityNameAndPlaceName("北京", end);

4:搜索Search初始化

mSearch=RoutePlanSearch.newInstance();
5:增加监听:
 
 
mSearch.setOnGetRoutePlanResultListener(listener);
6:开始调用方法搜索步行方案。
 
 
mSearch.walkingSearch((new WalkingRoutePlanOption())
        .from(stNode)
        .to(enNode));
至此步行搜索路劲开发完毕,
特别说明:步行搜索不止一条路劲,但我在代码中直接将路劲默认为get(0)得到。这样就得出一条路劲。
各位在开发的时候可以展示所有路劲,然后点击再进行路线的规划。
最后图片如下:

 
   

猜你喜欢

转载自blog.csdn.net/u012115730/article/details/78742644
今日推荐