ホームページ >Java >&#&チュートリアル >Baidu Map API で、Java を使用して 2 つの場所間の運転時間を計算し、地図上に表示するにはどうすればよいですか?

Baidu Map API で、Java を使用して 2 つの場所間の運転時間を計算し、地図上に表示するにはどうすればよいですか?

王林
王林オリジナル
2023-07-29 10:01:101942ブラウズ

Baidu Map API で、Java を使用して 2 つの場所間の運転時間を計算し、地図上に表示するにはどうすればよいですか?

Baidu Map API は、2 つの場所間の運転時間を計算して地図上に表示するなど、豊富な機能を提供します。この記事では、Java を使用してこの機能を実装するコードを作成する方法を紹介します。

まず、Baidu Map API の Java SDK をインポートする必要があります。 Java SDK のダウンロード リンクは、Baidu Map Open Platform の公式 Web サイトにあります。ダウンロードが完了したら、jar ファイルをプロジェクトのビルド パスにインポートします。

次に、Baidu Maps Open Platform に開発者アカウントを登録し、アプリケーションを作成する必要があります。アプリケーション作成後、アプリケーション管理ページでアクセスキー(ak)を取得できます。

コードでは、まず関連するパッケージを導入する必要があります:

import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.utils.CoordinateConverter;
import com.baidu.mapapi.utils.DistanceUtil;
import com.baidu.mapapi.utils.RoutePlanUtils;

次に、次のコードを使用して 2 つの場所間の運転時間を計算できます:

String ak = "your_ak"; // 替换成自己的ak
String origin = "起点位置"; // 替换成起点位置的经纬度
String destination = "终点位置"; // 替换成终点位置的经纬度

// 创建坐标转换工具
CoordinateConverter converter = new CoordinateConverter();

// 设置原始坐标类型,百度地图坐标类型为BAIDU,可以根据实际情况进行调整
converter.from(CoordinateConverter.CoordType.COMMON);

// 设置起点位置
LatLng originLatLng = new LatLng(Double.parseDouble(origin.split(",")[0]), Double.parseDouble(origin.split(",")[1]));
converter.coord(originLatLng);
LatLng convertedOriginLatLng = converter.convert();

// 设置终点位置
LatLng destinationLatLng = new LatLng(Double.parseDouble(destination.split(",")[0]), Double.parseDouble(destination.split(",")[1]));
converter.coord(destinationLatLng);
LatLng convertedDestinationLatLng = converter.convert();

// 计算两个位置间的直线距离
double distance = DistanceUtil.getDistance(convertedOriginLatLng, convertedDestinationLatLng);

// 计算两个位置间的驾车时间
double drivingTime = RoutePlanUtils.calDrivingTime(distance);

System.out.println("驾车时间:" + drivingTime + "分钟");

上記のコードでは、まず開始位置と終了位置の経度と緯度を百度地図の座標系に変換し、次に DistanceUtil クラスを使用して 2 つの位置間の直線距離を計算します。最後に、RoutePlanUtils クラスの calDrivingTime メソッドを使用して、直線距離に基づいて 2 つの場所間の運転時間を計算します。

地図上の 2 つの場所への運転ルートを表示するには、Baidu Maps の Web API を使用できます。以下はサンプル コードです。

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Display driving route on Baidu Maps</title>
  <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=your_ak"></script>
</head>
<body>
  <div id="map" style="width: 500px; height: 400px;"></div>
  <script type="text/javascript">
    var map = new BMap.Map("map");
    var driving = new BMap.DrivingRoute(map, {renderOptions:{map: map, autoViewport: true}});
    var pointA = new BMap.Point(起点位置);
    var pointB = new BMap.Point(终点位置);
    driving.search(pointA, pointB);
  </script>
</body>
</html>

上記のコードでは、BMap.Map クラスを使用してマップ インスタンスを作成し、次に BMap.DrivingRoute クラスを使用して走行ルート オブジェクトを作成します。 renderOptions パラメータにマップ オプションを設定して、地図上にルートを表示します。 pointAとpointBにそれぞれ始点と終点の経度、緯度を入力します。

要約すると、Baidu Map API の Java SDK を通じて、2 つの場所間の運転時間を簡単に計算し、地図上に表示できます。

以上がBaidu Map API で、Java を使用して 2 つの場所間の運転時間を計算し、地図上に表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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