首页 > 代码库 > 百度地图添加覆盖物与给定两点路线规划

百度地图添加覆盖物与给定两点路线规划

final LatLng ll = new LatLng(latiide, longitude);
                BitmapDescriptor descriptor = BitmapDescriptorFactory
                        .fromResource(marker);
                OverlayOptions options = new MarkerOptions().position(ll).icon(
                        descriptor);
                mBaiduMap.addOverlay(options);

 

路线规划:

      mMapView = (MapView) findViewById(R.id.bmapView);
        mBaiduMap = mMapView.getMap();
        search = RoutePlanSearch.newInstance();
        search.setOnGetRoutePlanResultListener(listener);

        //需要规划的两点
        PlanNode st = PlanNode.withLocation(new LatLng(39.931867, 116.395645));
        PlanNode ed = PlanNode.withLocation(new LatLng(39.915267, 116.40355));

         search.walkingSearch(new WalkingRoutePlanOption().from(st).to(ed));

当然好有他的事件:

OnGetRoutePlanResultListener listener = new OnGetRoutePlanResultListener() {
        public void onGetWalkingRouteResult(WalkingRouteResult result) {
            // 获取步行线路规划结果
            if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
                Toast.makeText(DaoHangActivity.this, "抱歉,未找到结果",
                        Toast.LENGTH_SHORT).show();
            }
            if (result.error == SearchResult.ERRORNO.AMBIGUOUS_ROURE_ADDR) {
                // 起终点或途经点地址有岐义,通过以下接口获取建议查询信息
                // result.getSuggestAddrInfo()
                return;
            }
            if (result.error == SearchResult.ERRORNO.NO_ERROR) {

                // route = result.getRouteLines().get(0);
                WalkingRouteOverlay overlay = new MyWalkingRouteOverlay(
                        mBaiduMap);
                mBaiduMap.setOnMarkerClickListener(overlay);
                routeOverlay = overlay;
                overlay.setData(result.getRouteLines().get(0));
                overlay.addToMap();
                overlay.zoomToSpan();
            }

        }

        public void onGetTransitRouteResult(TransitRouteResult result) {
            // 获取公交换乘路径规划结果
        }

        public void onGetDrivingRouteResult(DrivingRouteResult result) {
            // 获取驾车线路规划结果
        }

    };
自定义起点终点 图标:

    private class MyWalkingRouteOverlay extends WalkingRouteOverlay {

        public MyWalkingRouteOverlay(BaiduMap baiduMap) {
            super(baiduMap);
        }

        @Override
        public BitmapDescriptor getStartMarker() {
            if (useDefaultIcon) {
                return BitmapDescriptorFactory.fromResource(R.drawable.icon_st);
            }
            return null;
        }

        @Override
        public BitmapDescriptor getTerminalMarker() {
            if (useDefaultIcon) {
                return BitmapDescriptorFactory.fromResource(R.drawable.icon_en);
            }
            return null;
        }
    }