Per fare un test ho scaricato il file del Piemonte di OSM da questa cartella.
Successivamente ho eseguito (dopo aver decompresso il file bz2 e le varie lib osm2po)
java -jar osm2po-core-4.2.30-signed.jar prefix=hh piemonte.osm
dopo varie elaborazioni da questa app ottengo la cartella hh che contiene tutti i dati elaborati per eseguire un navigatore. Sempre seguendo i sample sul sito :
package osmtest;
import de.cm.osm2po.routing.DefaultRouter;
import de.cm.osm2po.routing.Graph;
import de.cm.osm2po.routing.Graph.SegmentHolder;
import de.cm.osm2po.routing.SingleTargetRouter;
import java.io.File;
import java.util.Properties;
public class OsmTest {
public static void main(String[] args) throws Exception {
File dir = new File("C:\\Documents and Settings\\marco\\Documenti\\Downloads\\hh"); // path to g*.2po Files
Graph graph = new Graph(dir); // CTOR loads graph into memory
SingleTargetRouter router = new DefaultRouter(); // Dijkstra with specials
// via palestro n.8 santhià
int sourceId = graph.findClosestVertexId(45.367874f, 8.177251f);
// piazza cavour vercelli
int targetId = graph.findClosestVertexId(45.2693237f, 8.3586324f);
// Possible params for DefaultRouter
Properties params = new Properties();
params.put("findShortestPath", false);
params.put("ignoreRestrictions", false);
params.put("ignoreOneWays", false);
params.put("heuristicFactor", "1.0"); // 0.0 Dijkstra, 1.0 good A*
router.traverse(graph, sourceId, targetId, Float.MAX_VALUE, params);
if (router.isVisited(targetId)) { // Found!
int[] path = router.makePath(targetId);
float tot_km = 0;
for (int i = 0; i < path.length; i++) {
SegmentHolder sh = graph.lookupSegment(path[i]);
int segId = sh.getConstPart().getId();
String segName = sh.getVarPart().getName().toString();
float km = sh.getConstPart().getKm();
System.out.println(segId + "\t" + segName + "\t" + km);
tot_km += km;
}
System.out.println();
System.out.println("tot km: " + tot_km);
}
graph.close();
}
}
-- RUNNING --
INFO Loading Graph from C:\Documents and Settings\marco\Documenti\Downloads\hh
INFO Loading Vertices from gv_fwd.2po
INFO 92.523 Vertices loaded. - 252.219k
INFO Loading Coordinates from gc_all.2po
INFO 92.523 Coords loaded. - 251.465k
INFO Loading Edges from ge_fwd.2po
INFO 249.174 Edges loaded. - 246.669k
INFO Graph is in memory - 246.754k free
29622 Via Fratelli Cervi 0.043157257
29621 Via Fratelli Cervi 0.056928575
29620 Via Fratelli Cervi 0.14821757
29619 Via Fratelli Cervi 0.013569439
26519 Via Tagliamento 0.0052738246
51988 Via Tagliamento 0.02373628
25153 Corso 25 Aprile 0.009190599
51981 Corso 25 Aprile 0.03348493
54642 Corso 25 Aprile 0.06539526
27074 Corso 25 Aprile 0.34717533
54771 Corso 25 Aprile 0.050330035
54644 Corso 25 Aprile 0.15120597
54643 Corso 25 Aprile 0.021295577
27073 Corso 25 Aprile 0.20046103
34253 Corso 25 Aprile 0.025631124
34252 Corso 25 Aprile 0.017132074
34251 Corso 25 Aprile 0.015333741
34250 Corso 25 Aprile 0.13944228
50410 Corso Vercelli 0.13845648
34254 Corso Vercelli 2.1409712
40898 Strada Provinciale 143 Vercellese 1.6996256
40897 Strada Provinciale 143 Vercellese 0.073485486
26505 Strada Provinciale 143 Vercellese 0.027207151
26510 Via per Torino 0.010309117
26511 Via per Torino 0.018367754
26512 Via per Torino 0.020955488
46939 Via per Torino 0.050319146
46942 Via per Torino 0.2733953
46943 Via per Torino 0.04208151
46944 Via per Torino 0.09343862
46945 Via per Torino 0.0420112
50046 Corso Giacomo Matteotti 0.0526508
50047 Corso Giacomo Matteotti 0.05815405
50048 Corso Giacomo Matteotti 0.10033821
50049 Corso Giacomo Matteotti 0.112137705
50420 Corso Giacomo Matteotti 0.08796594
50421 Corso Giacomo Matteotti 0.0055127908
50417 Corso Giacomo Matteotti 0.14630358
50413 Corso Giacomo Matteotti 0.015465715
50045 Strada Statale 11 Padana Superiore 0.63335454
50422 Strada Statale 11 Padana Superiore 0.087082945
50415 Strada Statale 11 Padana Superiore 2.1165488
50416 Strada Statale 11 Padana Superiore 1.9363447
50424 Strada Statale 11 Padana Superiore 0.067266665
50425 Strada Statale 11 Padana Superiore 1.5284381
50426 Strada Statale 11 Padana Superiore 0.37070882
50427 Strada Statale 11 Padana Superiore 0.274278
50428 Strada Statale 11 Padana Superiore 0.06099027
50429 Strada Statale 11 Padana Superiore 0.051663306
50430 Strada Statale 11 Padana Superiore 0.09464438
50431 Strada Statale 11 Padana Superiore 0.622247
50432 Strada Statale 11 Padana Superiore 1.9672685
50433 Strada Statale 11 Padana Superiore 0.020940712
50434 Strada Statale 11 Padana Superiore 0.019205108
50435 Strada Statale 11 Padana Superiore 1.1245883
31369 Strada Statale 11 Padana Superiore 0.020982204
27430 0.019469375
31366 Strada Statale 31 del Monferrato 0.041809272
31365 Strada Statale 31 del Monferrato 0.8612228
31371 Strada Statale 31 del Monferrato 0.019620165
27935 SP31 0.06312612
31372 Strada Statale 31 del Monferrato 0.021187807
31374 Strada Statale 31 del Monferrato 0.16272391
50462 Strada Statale 31 del Monferrato 0.005521775
50449 Strada Statale 31 del Monferrato 0.66337603
26054 0.16612104
26531 0.16449298
26529 0.12807508
30301 Via Trino 0.106118426
30300 Via Trino 1.1253898
42838 SS455 0.06568793
25744 0.028293554
25738 0.041163616
42827 SS455 0.049763422
42836 Strada statale Vercelli-Trino 0.14589156
42837 Strada statale Vercelli-Trino 0.047293313
33927 Strada statale Vercelli-Trino 0.3165596
43957 Strada statale Vercelli-Trino 0.056310877
43946 Strada statale Vercelli-Trino 0.3662844
33926 Strada statale Vercelli-Trino 0.3887234
43958 SS455 0.011191902
33042 Strada statale Vercelli-Trino 0.8628093
33043 Strada statale Vercelli-Trino 0.23586215
49910 0.0446586
27271 0.04874075
52907 Via Vercelli 0.030868573
52908 Via Vercelli 0.5514064
52909 Via Vercelli 0.007921268
52910 Via Vercelli 0.041300017
52911 Via Vercelli 0.02520492
52912 Via Vercelli 0.008553665
52913 Via Vercelli 0.06177261
52914 Via Vercelli 0.04884419
52915 Via Vercelli 0.21045697
54341 Corso Marconi 0.23005071
54342 Corso Marconi 0.060422346
54343 Corso Marconi 0.053981215
49908 Piazza Cavour 0.018594721
tot km: 25.179537
tot time execution:468
ottimo i 468 millisecondi il percorso completo, potrebbe essere quello che mi serve.