ホームページ  >  記事  >  Java  >  Java コードを使用して、Baidu Map 上のルート計画を通じて標準化された運転ルートを描画するにはどうすればよいですか?

Java コードを使用して、Baidu Map 上のルート計画を通じて標準化された運転ルートを描画するにはどうすればよいですか?

王林
王林オリジナル
2023-08-02 10:12:361500ブラウズ

Java コードを使用して、Baidu Maps でのルート計画を通じて標準化された運転ルートを描画するにはどうすればよいですか?

スマートフォンとオンライン地図の普及に伴い、正確な運転方向を知ることがますます重要になっています。開発者にとって、アプリケーションに運転ルート計画機能を実装できることは非常に便利です。 Baidu Maps は、開発者が Java コードを通じて地図上に標準化された運転ルートを描画できる豊富な API を提供します。

始める前に、Baidu Maps 開発者アカウントを申請し、アプリケーションを作成したことを確認する必要があります。次に、Baidu Map API の Java SDK をダウンロードし、プロジェクトの依存関係に追加する必要があります。

  1. マップ オブジェクトの作成

まず、地図上に運転ルートを表示するための Baidu マップ オブジェクトを作成する必要があります。次のコードを使用して、Baidu マップ ウィンドウを作成できます。

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. ルート計画機能の追加

次のステップは、ルート計画機能を実装することです。 Baidu Maps は、運転ルートを計画および検索するための 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. Query Route

次に、開始位置と終了位置によって運転ルートをクエリする必要があります。ルートをクエリする前に、始点と終点の緯度と経度の座標を指定する必要があります。たとえば、始点の経度と緯度が 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 このメソッドは、運転ルートをクエリし、OnGetRoutePlanResultListener インターフェイスを通じてクエリ結果をリッスンします。クエリ結果にエラーがなければ、最初の走行ルートが取得され、地図上に描画されます。

  1. 実行

上記の手順を完了すると、アプリケーションを実行して、標準化された運転ルートを地図上に表示できます。同時に、必要に応じて地図のスタイルをカスタマイズしたり、旅行ルートをマークしたりすることもできます。

概要

この記事では、Java コードを使用して、Baidu Maps でのルート計画を通じて標準化された運転ルートを描画する方法を紹介します。 Baidu Maps が提供する API を通じて、この機能を簡単に実装し、より良いユーザー エクスペリエンスを提供できます。

上記はコード例です。お役に立てれば幸いです。独自のニーズに応じて変更および拡張し、より多くの機能を実現できます。 Baidu Map API の使用が成功することを祈っています。

以上がJava コードを使用して、Baidu Map 上のルート計画を通じて標準化された運転ルートを描画するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。