Maison >Java >javaDidacticiel >Comment utiliser le code Java pour tracer des itinéraires routiers standardisés grâce à la planification d'itinéraire sur Baidu Maps ?

Comment utiliser le code Java pour tracer des itinéraires routiers standardisés grâce à la planification d'itinéraire sur Baidu Maps ?

王林
王林original
2023-08-02 10:12:361523parcourir

Comment utiliser le code Java pour tracer des itinéraires routiers standardisés grâce à la planification d'itinéraire sur Baidu Maps ?

Avec la prolifération des smartphones et des cartes en ligne, obtenir des itinéraires routiers précis est devenu de plus en plus important. Il est très utile pour les développeurs de pouvoir implémenter la fonctionnalité de planification d'itinéraires dans leurs applications. Baidu Maps fournit une API riche qui permet aux développeurs de tracer des itinéraires routiers standardisés sur la carte via du code Java.

Avant de commencer, nous devons nous assurer que nous avons demandé un compte de développeur Baidu Maps et créé une application. Ensuite, vous devez télécharger le SDK Java de l'API Baidu Map et l'ajouter aux dépendances du projet.

  1. Créer un objet cartographique

Tout d'abord, nous devons créer un objet cartographique Baidu pour afficher les itinéraires routiers sur la carte. Vous pouvez créer une fenêtre de carte Baidu via le code suivant :

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. Ajouter la fonction de planification d'itinéraire

L'étape suivante consiste à implémenter la fonction de planification d'itinéraire. Baidu Maps fournit une classe RoutePlanSearch pour planifier et rechercher des itinéraires routiers. Dans la méthode onCreate du code ci-dessus, nous devons instancier un objet RoutePlanSearch : RoutePlanSearch类,用于实现驾车路线的规划和搜索。在上述代码中的onCreate方法中,我们需要实例化一个RoutePlanSearch对象:

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. 查询路线

接下来,我们需要通过起点和终点位置查询驾车路线。在查询路线之前,我们需要指定起点和终点的经纬度坐标。例如,假设起点的经纬度为39.915, 116.404,终点的经纬度为39.995, 116.447,我们可以通过以下代码进行查询:

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));
    }
    ...
}

在上述代码中,我们通过mRoutePlanSearch.drivingSearch方法查询了驾车路线,并通过OnGetRoutePlanResultListenerrrreee

    Query route
    1. Ensuite, nous besoin d'interroger l'itinéraire de conduite par emplacements de départ et d'arrivée. Avant d'interroger l'itinéraire, nous devons spécifier les coordonnées de latitude et de longitude du point de départ et du point d'arrivée. Par exemple, en supposant que la longitude et la latitude du point de départ sont 39,915, 116,404 et que la longitude et la latitude du point final sont 39,995, 116,447, nous pouvons interroger via le code suivant :
    rrreee

    Dans le code ci-dessus, nous interrogeons via la méthode mRoutePlanSearch.drivingSearch Itinéraire routier et écoutez les résultats de la requête via l'interface OnGetRoutePlanResultListener. S'il n'y a aucune erreur dans les résultats de la requête, le premier itinéraire est obtenu et dessiné sur la carte.

    Exécuter

    Après avoir terminé les étapes ci-dessus, nous pouvons exécuter l'application et voir l'itinéraire de conduite standardisé sur la carte. Dans le même temps, nous pouvons personnaliser le style de la carte, marquer les itinéraires de voyage, etc. selon les besoins.

    🎜Résumé🎜🎜Cet article explique comment utiliser le code Java pour tracer des itinéraires routiers standardisés grâce à la planification d'itinéraire sur Baidu Maps. Grâce à l'API fournie par Baidu Maps, nous pouvons facilement implémenter cette fonction et offrir une meilleure expérience utilisateur. 🎜🎜Ce qui précède est un exemple de code, j'espère qu'il pourra vous être utile. Vous pouvez le modifier et l'étendre selon vos propres besoins pour obtenir plus de fonctions. Je vous souhaite du succès dans l'utilisation de l'API Baidu Map ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn