Also, ich werde meine Code-Beispiele teilen, die zeigen, wie ich benutzerdefinierte Gewichtung implementiert, aber sie sind ähnlich wie example Sie erwähnt.
Zuerst müssen Sie die Klasse GraphHopper
erweitern und die Methode createWeighting(WeightingMap weightingMap, FlagEncoder encoder)
außer Kraft setzen.
Dann implementieren Sie benutzerdefinierte Gewichtung, wo Sie in Ihrem Fall Logik der Blockierung einiger Straßen implementieren.
Und jetzt, vielleicht der wichtigste Teil für Sie, der zeigt, wie Sie diese beiden Teile des Codes verbinden. Wenn Sie eine neue Anfrage erstellen, müssen Sie die Gewichtung auf eine benutzerdefinierte Anfrage setzen (die, die Sie implementiert haben). Auf diese Weise wird Ihre benutzerdefinierte Gewichtung mit einigen gesperrten Straßen verwendet, während die optimale Route berechnet wird.
public static void main(String[] args) {
MyGraphHopper hopper = new MyGraphHopper();
hopper.setOSMFile(OSM_FILE_PATH);
hopper.setGraphHopperLocation(GRAPH_FOLDER);
hopper.clean();
hopper.setEncodingManager(new EncodingManager("car"));
hopper.setCHEnable(false);
hopper.importOrLoad();
GHRequest req = new GHRequest(startPoint.getX(), startPoint.getY(), finishPoint.getX(), finishPoint.getY())
.setWeighting(Consts.CURRENT_TRAFFIC)
.setVehicle("car")
.setLocale(Locale.US)
.setAlgorithm(AlgorithmOptions.DIJKSTRA_BI);
GHResponse rsp = hopper.route(req);
}
einen Blick in dieser Klasse haben: https://github.com/graphhopper/graphhopper/blob/master/core/src/main/java/com/graphhopper/routing/weighting/AvoidEdgesWeighting.java oder diese repository: https://github.com/karussell/graphhopper-traffic-data-integration – Karussell
Danke sir @karussell, ich untersuchte die Probe aber leider kann ich nicht herausfinden, die beiden Codes zu kombinieren. Tut mir leid, dass ich Neuling bin. Gibt es ein einfacheres Beispiel, das ich mir ansehen kann? Etwas, das einen grundlegenden grapphopper Kartencode zeigt, eine Gewichtsklasse oder die Kante in dem grundlegenden Grapphoer Beispielcode vermeiden nennt. Vielen Dank im Voraus – Mellorine
Sehen Sie diese sehr aktuelle Pull-Anfrage https://github.com/graphhopper/graphhopper/pull/890 – Karussell