700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > android百度地图开发V4.5最新版(5)---路线规划问题步行 骑车 公交 驾车等。

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

时间:2023-05-14 04:10:56

相关推荐

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

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

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

<!--放入百度地图的mapview --> <com.baidu.mapapi.map.MapViewandroid:id="@+id/bmapsView"android:layout_width="fill_parent"android:layout_height="fill_parent"android:clickable="true"/><LinearLayoutandroid: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"><!--起点输入框--><EditTextandroid:id="@+id/editText1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:ems="50"android:layout_weight="1"android:hint="请输入起点"></EditText><!--终点输入框--><EditTextandroid:id="@+id/editText2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:ems="50"android:layout_weight="1"android:hint="请输入终点"></EditText></LinearLayout><!--搜索执行按钮--> <Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_alignParentTop="true"android:text="《搜索》"/></RelativeLayout><ListViewandroid:id="@+id/android:list"android:layout_width="fill_parent"android:layout_height="fill_parent"></ListView>

这里的listview的作用格式展示路线的point节点信息。

2:建立SDKlistioner监听

OnGetRoutePlanResultListener listener =newOnGetRoutePlanResultListener() {@Override //步行public voidonGetWalkingRouteResult(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 =newHashMap<String, String>();map1.put("经纬度",walkingStep.getInstructions());data.add(map1);setListAdapter(newSimpleAdapter(LuxianActivity.this,data,android.R.layout.simple_list_item_1,newString[]{"经纬度"}, //每行显示一个姓名new int[]{android.R.id.text1})); //名字在text1上显示));Log.e("路线", walkingStep.getInstructions());}WalkingRouteOverlay overlay =newWalkingRouteOverlay(mBaiduMap);mBaiduMap.setOnMarkerClickListener(overlay);routeOverlay= overlay;//设置路线数据overlay.setData(walkingRouteResult.getRouteLines().get(0));overlay.addToMap(); //将所有overlay添加到地图中overlay.zoomToSpan();//缩放地图 }@Override //公交public voidonGetTransitRouteResult(TransitRouteResult transitRouteResult) {}@Overridepublic voidonGetMassTransitRouteResult(MassTransitRouteResult massTransitRouteResult) {}@Override //驾车public voidonGetDrivingRouteResult(DrivingRouteResult drivingRouteResult) {}@Override //室内public voidonGetIndoorRouteResult(IndoorRouteResult indoorRouteResult) {}@Override //骑行public voidonGetBikingRouteResult(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((newWalkingRoutePlanOption()).from(stNode).to(enNode));

至此步行搜索路劲开发完毕,

特别说明:步行搜索不止一条路劲,但我在代码中直接将路劲默认为get(0)得到。这样就得出一条路劲。

各位在开发的时候可以展示所有路劲,然后点击再进行路线的规划。

最后图片如下:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。