use of com.graphhopper.GHRequest in project graphhopper by graphhopper.
the class GraphHopperOSMTest method testCustomFactoryForNoneCH.
@Test
public void testCustomFactoryForNoneCH() {
CarFlagEncoder carEncoder = new CarFlagEncoder();
EncodingManager em = new EncodingManager(carEncoder);
// Weighting weighting = new FastestWeighting(carEncoder);
instance = new GraphHopperOSM().setStoreOnFlush(false).setCHEnabled(false).setEncodingManager(em).setGraphHopperLocation(ghLoc).setDataReaderFile(testOsm);
final RoutingAlgorithmFactory af = new RoutingAlgorithmFactorySimple();
instance.addAlgorithmFactoryDecorator(new RoutingAlgorithmFactoryDecorator() {
@Override
public void init(CmdArgs args) {
}
@Override
public RoutingAlgorithmFactory getDecoratedAlgorithmFactory(RoutingAlgorithmFactory algoFactory, HintsMap map) {
return af;
}
@Override
public boolean isEnabled() {
return true;
}
});
instance.importOrLoad();
assertTrue(af == instance.getAlgorithmFactory(null));
// test that hints are passed to algorithm opts
final AtomicInteger cnt = new AtomicInteger(0);
instance.addAlgorithmFactoryDecorator(new RoutingAlgorithmFactoryDecorator() {
@Override
public void init(CmdArgs args) {
}
public RoutingAlgorithmFactory getDecoratedAlgorithmFactory(RoutingAlgorithmFactory algoFactory, HintsMap map) {
return new RoutingAlgorithmFactorySimple() {
@Override
public RoutingAlgorithm createAlgo(Graph g, AlgorithmOptions opts) {
cnt.addAndGet(1);
assertFalse(opts.getHints().getBool("test", true));
return super.createAlgo(g, opts);
}
};
}
@Override
public boolean isEnabled() {
return true;
}
});
GHRequest req = new GHRequest(51.2492152, 9.4317166, 51.2, 9.4);
req.getHints().put("test", false);
instance.route(req);
assertEquals(1, cnt.get());
}
use of com.graphhopper.GHRequest in project graphhopper by graphhopper.
the class GraphHopperWebIT method testRetrieveOnlyStreetname.
@Test
public void testRetrieveOnlyStreetname() {
GHRequest req = new GHRequest().addPoint(new GHPoint(52.261434, 13.485718)).addPoint(new GHPoint(52.399067, 13.469238));
GHResponse res = gh.route(req);
assertEquals("Continue onto B 96", res.getBest().getInstructions().get(4).getName());
req.getHints().put("turn_description", false);
res = gh.route(req);
assertEquals("B 96", res.getBest().getInstructions().get(4).getName());
}
use of com.graphhopper.GHRequest in project graphhopper by graphhopper.
the class GraphHopperWebIT method testTimeout.
@Test
public void testTimeout() {
GHRequest req = new GHRequest().addPoint(new GHPoint(49.6724, 11.3494)).addPoint(new GHPoint(49.6550, 11.4180));
GHResponse res = gh.route(req);
assertFalse("errors:" + res.getErrors().toString(), res.hasErrors());
req.getHints().put(GraphHopperWeb.TIMEOUT, 1);
try {
res = gh.route(req);
fail();
} catch (RuntimeException e) {
assertEquals(SocketTimeoutException.class, e.getCause().getClass());
}
}
use of com.graphhopper.GHRequest in project graphhopper by graphhopper.
the class GraphHopperWebIT method doNotReadFinishInstruction.
@Test
public void doNotReadFinishInstruction() {
GHRequest req = new GHRequest().addPoint(new GHPoint(52.261434, 13.485718)).addPoint(new GHPoint(52.399067, 13.469238));
req.getHints().put("turn_description", false);
GHResponse res = gh.route(req);
InstructionList instructions = res.getBest().getInstructions();
String finishInstructionName = instructions.get(instructions.size() - 1).getName();
assertEquals("", finishInstructionName);
}
use of com.graphhopper.GHRequest in project graphhopper by graphhopper.
the class GraphHopperWebIT method testAlternativeRoute.
@Test
public void testAlternativeRoute() {
// https://graphhopper.com/maps/?point=52.042989%2C10.373926&point=52.042289%2C10.384043&algorithm=alternative_route&ch.disable=true
GHRequest req = new GHRequest().addPoint(new GHPoint(52.042989, 10.373926)).addPoint(new GHPoint(52.042289, 10.384043));
req.setAlgorithm("alternative_route");
req.getHints().put("instructions", true);
req.getHints().put("calc_points", true);
req.getHints().put("ch.disable", true);
GHResponse res = gh.route(req);
assertFalse("errors:" + res.getErrors().toString(), res.hasErrors());
List<PathWrapper> paths = res.getAll();
assertEquals(2, paths.size());
PathWrapper path = paths.get(0);
isBetween(5, 20, path.getPoints().size());
isBetween(1000, 1100, path.getDistance());
assertEquals("Wiesenstraße", path.getDescription().get(0));
path = paths.get(1);
isBetween(20, 30, path.getPoints().size());
isBetween(800, 900, path.getDistance());
assertEquals("Jacobistraße", path.getDescription().get(0));
}
Aggregations