Home  >  Article  >  Java  >  How to use Java code to draw standardized driving routes through route planning on Baidu Maps?

How to use Java code to draw standardized driving routes through route planning on Baidu Maps?

王林
王林Original
2023-08-02 10:12:361497browse

How to use Java code to draw standardized driving routes through route planning on Baidu Maps?

With the proliferation of smartphones and online maps, getting accurate driving directions has become increasingly important. It is very useful for developers to be able to implement driving route planning functionality in their applications. Baidu Maps provides a rich API that allows developers to draw standardized driving routes on the map through Java code.

Before we begin, we need to ensure that we have applied for a Baidu Maps developer account and created an application. Next, you need to download the Java SDK of Baidu Map API and add it to the project's dependencies.

  1. Create a map object

First, we need to create a Baidu map object to display driving routes on the map. You can create a Baidu map window through the following code:

import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapView;

public class MapActivity extends AppCompatActivity {
    private MapView mMapView;
    private BaiduMap mBaiduMap;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        SDKInitializer.initialize(getApplicationContext());
        setContentView(R.layout.activity_map);
        
        mMapView = findViewById(R.id.mapView);
        mBaiduMap = mMapView.getMap();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mMapView.onDestroy();
    }

    @Override
    protected void onResume() {
        super.onResume();
        mMapView.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        mMapView.onPause();
    }
}
  1. Add route planning function

The next step is to implement the route planning function. Baidu Maps provides a RoutePlanSearch class for planning and searching driving routes. In the onCreate method in the above code, we need to instantiate a RoutePlanSearch object:

import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.search.route.*;
import com.baidu.mapapi.search.route.PlanNode;
import com.baidu.mapapi.search.route.RoutePlanSearch;
import com.baidu.mapapi.search.route.RoutePlanSearchOption;

public class MapActivity extends AppCompatActivity {
    ...
    private RoutePlanSearch mRoutePlanSearch;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        mRoutePlanSearch = RoutePlanSearch.newInstance();
    }
    ...
}
  1. Query route

Next, we need to query the driving route by starting and ending locations. Before querying the route, we need to specify the latitude and longitude coordinates of the starting point and end point. For example, assuming that the longitude and latitude of the starting point are 39.915, 116.404, and the longitude and latitude of the end point are 39.995, 116.447, we can query through the following code:

import com.baidu.mapapi.search.core.SearchResult;
import com.baidu.mapapi.search.route.*;
import com.baidu.mapapi.search.route.PlanNode;
import com.baidu.mapapi.search.route.RoutePlanSearch;
import com.baidu.mapapi.search.route.RoutePlanSearchOption;

public class MapActivity extends AppCompatActivity {
    ...
    private RoutePlanSearch mRoutePlanSearch;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        mRoutePlanSearch.setOnGetRoutePlanResultListener(new OnGetRoutePlanResultListener() {
            @Override
            public void onGetWalkingRouteResult(WalkingRouteResult walkingRouteResult) {
            }
    
            @Override
            public void onGetTransitRouteResult(TransitRouteResult transitRouteResult) {
            }
    
            @Override
            public void onGetDrivingRouteResult(DrivingRouteResult drivingRouteResult) {
                if (drivingRouteResult == null || drivingRouteResult.error != SearchResult.ERRORNO.NO_ERROR) {
                    // 查询失败处理
                } else {
                    // 获取驾车路线规划结果
                    DrivingRouteLine drivingRouteLine = drivingRouteResult.getRouteLines().get(0);
                    // 在地图上绘制驾车路线
                    OverlayOptions overlayOptions = new DrivingRouteOverlay(mBaiduMap).setData(drivingRouteLine);
                    overlayOptions.addToMap();
                    overlayOptions.zoomToSpan();
                }
            }
    
            @Override
            public void onGetBikingRouteResult(BikingRouteResult bikingRouteResult) {
            }
        });
        
        PlanNode startNode = PlanNode.withLocation(new LatLng(39.915, 116.404));
        PlanNode endNode = PlanNode.withLocation(new LatLng(39.995, 116.447));
        mRoutePlanSearch.drivingSearch(new DrivingRoutePlanOption().from(startNode).to(endNode));
    }
    ...
}

In the above code, we pass mRoutePlanSearch.drivingSearch The method queries the driving route and listens to the query results through the OnGetRoutePlanResultListener interface. If there are no errors in the query results, the first driving route is obtained and drawn on the map.

  1. Run

After completing the above steps, we can run the application and see the standardized driving route on the map. At the same time, we can customize the map style, mark travel routes, etc. as needed.

Summary

This article introduces how to use Java code to draw standardized driving routes through route planning on Baidu Maps. Through the API provided by Baidu Maps, we can easily implement this function and provide a better user experience.

The above is a code example, I hope it can be helpful to you. You can modify and extend it according to your own needs to achieve more functions. I wish you success when using Baidu Map API!

The above is the detailed content of How to use Java code to draw standardized driving routes through route planning on Baidu Maps?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn