Hi Emux,
thanks for your answer!
I have integragted first BRoutrer and then Graphhopper in my own aplication.BRouter
tis very easy to integrate!
Dowload the pcakage from ==>
http://brouter.de/brouter/offline.html (and profiles / segments),
Link the brouter .jar to your applicaten thats it...
..... 3 Alternatve Routes ....
gpxRoute=br.findROUTE(from.longitude, from.latitude, to.longitude, to.latitude);
gpx.getTracks().get(1).addTrackseg().getWaypoints().addAll(gpxRoute.getTracks().get(0).getTracksegs().get(0).getWaypoints());
gpx.getTracks().get(1).setColor(java.awt.Color.GREEN);
WmsMapViewer.setStatus("Route 1 BRouter fertig.......");
gpxRoute=br.findROUTE(from.longitude, from.latitude, to.longitude, to.latitude);
gpx.getTracks().get(2).addTrackseg().getWaypoints().addAll(gpxRoute.getTracks().get(0).getTracksegs().get(0).getWaypoints());
gpx.getTracks().get(2).setColor(java.awt.Color.BLUE);
WmsMapViewer.setStatus("Route 2 BRouter fertig........");
gpxRoute=br.findROUTE(from.longitude, from.latitude, to.longitude, to.latitude);
gpx.getTracks().get(3).addTrackseg().getWaypoints().addAll(gpxRoute.getTracks().get(0).getTracksegs().get(0).getWaypoints());
gpx.getTracks().get(3).setColor(java.awt.Color.RED);
.........
package womisa.router.brouter;
import btools.router.OsmNodeNamed;
import btools.router.OsmTrack;
import btools.router.RoutingContext;
import btools.router.RoutingEngine;
import womisa.gpx.GPXFile;
import java.util.ArrayList;
import java.util.List;
public class MyBrouter {
public GPXFile findROUTE(Double fromLon, Double fromLat, Double toLon, Double toLat) {
List<OsmNodeNamed> wplist2 = createWaypointList(fromLon, fromLat, toLon, toLat);
System.out.println("From:" + fromLon + " " + fromLat);
System.out.println(" To:" + toLon + " " + toLat);
// File fileXX = new File((new File(".").getCanonicalPath()) + "/output/);
String baseDir=System.getProperty("user.dir") + "/../WMSData/brouter/";
RoutingContext c = new RoutingContext();
c.localFunction = baseDir+"profiles2//trekking.brf";
// c.setAlternativeIdx(2); //Todo testen Funktion unklar
// c.localFunction = baseDir+"profiles2/shortest.brf";
// new CycleRoute("output/mytrack", "output/mylog", "segments2", wplist2, c);
System.out.println("Profile:="+c.localFunction);
// RoutingEngine routingEngine=new RoutingEngine(baseDir+"out/mytrack", baseDir+"out/mylog", baseDir+"segments2", wplist2, c);
RoutingEngine routingEngine=new RoutingEngine(baseDir+"out/mytrack", null, baseDir+"segments3", wplist2, c); //....mytrack muß da sein sonst werden keine Alternativen generiert
// RoutingEngine routingEngine=new RoutingEngine(null, null, baseDir+"segments3", wplist2, c); //....mytrack muß da sein sonst werden keine Alternativen generiert
routingEngine.quite=true;
routingEngine.doRun( 60000 );
if ( routingEngine.getErrorMessage() != null )
{
System.out.println("=======>!!!!!!!!!!Timeout Keine Route gefunden:" +routingEngine.getErrorMessage() + "!!!!!!!!!)<============");
}
OsmTrack track = routingEngine.getFoundTrack();
GPXFile gpxFile=new GPXFile("BRouter",(String) track.formatAsGpx());
//test
int distance = routingEngine.getDistance();
int ixx= routingEngine.getAlternativeIndex();
System.out.println("Alternative: "+ixx + " Distanz: " + distance);
return gpxFile;
}
private List<OsmNodeNamed> createWaypointList(Double fromLon, Double fromLat, Double toLon, Double toLat) {
List<OsmNodeNamed> wplist = new ArrayList<OsmNodeNamed>();
OsmNodeNamed n = new OsmNodeNamed();
n.name = "from";
n.ilon = (int) ((fromLon + 180.) * 1000000. + 0.5);
n.ilat = (int) ((fromLat + 90.) * 1000000. + 0.5);
wplist.add(n);
n = new OsmNodeNamed();
n.name = "to";
n.ilon = (int) ((toLon + 180.) * 1000000. + 0.5);
n.ilat = (int) ((toLat + 90.) * 1000000. + 0.5);
wplist.add(n);
return wplist;