700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 百度地图室内路线规划

百度地图室内路线规划

时间:2021-03-10 15:04:25

相关推荐

百度地图室内路线规划

室内路线规划

1、创建路线规划检索实例

mSearch = RoutePlanSearch.newInstance();

2、创建路线规划检索监听器

mSearch.setOnGetRoutePlanResultListener(new OnGetRoutePlanResultListener() {@Overridepublic void onGetWalkingRouteResult(WalkingRouteResult walkingRouteResult) {}@Overridepublic void onGetTransitRouteResult(TransitRouteResult transitRouteResult) {}@Overridepublic void onGetMassTransitRouteResult(MassTransitRouteResult massTransitRouteResult) {}@Overridepublic void onGetDrivingRouteResult(DrivingRouteResult drivingRouteResult) {}@Overridepublic void onGetIndoorRouteResult(IndoorRouteResult indoorRouteResult) {if (indoorRouteResult.error == SearchResult.ERRORNO.NO_ERROR) {IndoorRouteOverlay overlay = new IndoorRouteOverlay(mBaiduMap);mIndoorRouteline = indoorRouteResult.getRouteLines().get(0);nodeIndex = -1;mBtnPre.setVisibility(View.VISIBLE);mBtnNext.setVisibility(View.VISIBLE);overlay.setData(indoorRouteResult.getRouteLines().get(0));overlay.addToMap();overlay.zoomToSpan();}}@Overridepublic void onGetBikingRouteResult(BikingRouteResult bikingRouteResult) {}});

3、发起室内路线规划

indoorRoutePlane = (Button)findViewById(R.id.indoorRoutePlane);indoorRoutePlane.setOnClickListener( new View.OnClickListener() {@Overridepublic void onClick(View v) {// 发起室内路线规划检索//设置起点终点IndoorPlanNode startNode = new IndoorPlanNode(new LatLng(39.917380, 116.37978), "F1");IndoorPlanNode endNode = new IndoorPlanNode(new LatLng(39.917239, 116.37955), "F6");IndoorRoutePlanOption irpo = new IndoorRoutePlanOption().from(startNode).to(endNode);mSearch.walkingIndoorSearch(irpo);}});

4、节点浏览示例

public void nodeClick(View v) {if (mBaiduMap.isBaseIndoorMapMode()) {LatLng nodeLocation = null;String nodeTitle = null;IndoorRouteLine.IndoorRouteStep step = null;if (mIndoorRouteline == null || mIndoorRouteline.getAllStep() == null) {return;}if (nodeIndex == -1 && v.getId() == R.id.pre) {return;}// 设置节点索引if (v.getId() == R.id.next) {if (nodeIndex < mIndoorRouteline.getAllStep().size() - 1) {nodeIndex++;} else {return;}} else if (v.getId() == R.id.pre) {if (nodeIndex > 0) {nodeIndex--;} else {return;}}// 获取节结果信息step = mIndoorRouteline.getAllStep().get(nodeIndex);nodeLocation = step.getEntrace().getLocation();nodeTitle = step.getInstructions();if (nodeLocation == null || nodeTitle == null) {return;}// 移动节点至中心mBaiduMap.setMapStatus(MapStatusUpdateFactory.newLatLng(nodeLocation));// show popuppopupText = new TextView(IndoorSearchActivity.this);popupText.setBackgroundResource(R.drawable.popup);popupText.setTextColor(0xFF000000);popupText.setText(step.getFloorId() + ":" + nodeTitle);mBaiduMap.showInfoWindow(new InfoWindow(popupText, nodeLocation, 0));// 让楼层对应变化mBaiduMap.switchBaseIndoorMapFloor(step.getFloorId(), mMapBaseIndoorMapInfo.getID());// mFloorListAdapter.setSelectedPostion();mFloorListAdapter.notifyDataSetInvalidated();}else{Toast.makeText(IndoorSearchActivity.this,"请打开室内图或将室内图移入屏幕内",Toast.LENGTH_SHORT).show();}}

5、运行效果如图:

6、左右按钮的点击效果,如图:

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