Heim  >  Artikel  >  Java  >  Wie kann in der Baidu Map API mit Java die Fahrzeit zwischen zwei Standorten berechnet und auf der Karte angezeigt werden?

Wie kann in der Baidu Map API mit Java die Fahrzeit zwischen zwei Standorten berechnet und auf der Karte angezeigt werden?

王林
王林Original
2023-07-29 10:01:101856Durchsuche

Wie kann ich in der Baidu Map API mithilfe von Java die Fahrzeit zwischen zwei Standorten berechnen und auf der Karte anzeigen?

Baidu Map API bietet umfangreiche Funktionen, einschließlich der Berechnung der Fahrzeit zwischen zwei Standorten und deren Anzeige auf der Karte. In diesem Artikel wird erläutert, wie Sie mit Java Code schreiben, um diese Funktion zu implementieren.

Zuerst müssen wir das Java SDK der Baidu Map API importieren. Den Download-Link für das Java SDK finden Sie auf der offiziellen Website der Baidu Map Open Platform. Nachdem der Download abgeschlossen ist, importieren Sie die JAR-Datei in den Build-Pfad des Projekts.

Als nächstes müssen wir ein Entwicklerkonto für Baidu Maps Open Platform registrieren und eine Anwendung erstellen. Nachdem Sie die Anwendung erstellt haben, können Sie den Zugriffsschlüssel (ak) auf der Anwendungsverwaltungsseite erhalten.

Im Code müssen wir zunächst das entsprechende Paket einführen:

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

Dann können wir den folgenden Code verwenden, um die Fahrzeit zwischen zwei Orten zu berechnen:

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 + "分钟");

Im obigen Code kombinieren wir zunächst den Startort und der Endpunkt Die Längen- und Breitengrade des Standorts werden in das Koordinatensystem von Baidu Map konvertiert, und dann wird die DistanceUtil-Klasse verwendet, um die geradlinige Entfernung zwischen den beiden Standorten zu berechnen. Schließlich wird die Fahrzeit zwischen zwei Standorten basierend auf der Luftlinienentfernung mithilfe der Methode calDrivingTime der RoutePlanUtils-Klasse berechnet.

Um Wegbeschreibungen für zwei Standorte auf der Karte anzuzeigen, können Sie die Web-API von Baidu Maps verwenden. Hier ist ein Beispielcode:

<!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>

Im obigen Code verwenden wir die BMap.Map-Klasse, um eine Karteninstanz zu erstellen, und verwenden dann die BMap.DrivingRoute-Klasse, um ein Fahrroutenobjekt zu erstellen. Zeigen Sie die Route auf der Karte an, indem Sie die Kartenoption im Parameter renderOptions festlegen. Geben Sie den Längen- und Breitengrad des Startpunkts und des Endpunkts in PunktA bzw. PunktB ein.

Zusammenfassend lässt sich sagen, dass wir über das Java SDK der Baidu Map API die Fahrzeit zwischen zwei Standorten einfach berechnen und auf der Karte anzeigen können.

Das obige ist der detaillierte Inhalt vonWie kann in der Baidu Map API mit Java die Fahrzeit zwischen zwei Standorten berechnet und auf der Karte angezeigt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn