planetiler/planetiler-dist/src/main/java/com/onthegomap/planetiler/Main.java

66 wiersze
2.5 KiB
Java

package com.onthegomap.planetiler;
import static java.util.Map.entry;
import com.onthegomap.planetiler.benchmarks.LongLongMapBench;
import com.onthegomap.planetiler.benchmarks.OpenMapTilesMapping;
import com.onthegomap.planetiler.custommap.ConfiguredMapMain;
import com.onthegomap.planetiler.examples.BikeRouteOverlay;
import com.onthegomap.planetiler.examples.OsmQaTiles;
import com.onthegomap.planetiler.examples.ToiletsOverlay;
import com.onthegomap.planetiler.examples.ToiletsOverlayLowLevelApi;
import com.onthegomap.planetiler.mbtiles.Verify;
import com.onthegomap.planetiler.openmaptiles.OpenMapTilesMain;
import com.onthegomap.planetiler.openmaptiles.util.VerifyMonaco;
import java.util.Arrays;
import java.util.Locale;
import java.util.Map;
/**
* Main entry-point for executable jar and container distributions of Planetiler, which delegates to individual {@code
* public static void main(String[] args)} methods of runnable classes.
*/
public class Main {
private static final EntryPoint DEFAULT_TASK = OpenMapTilesMain::main;
private static final Map<String, EntryPoint> ENTRY_POINTS = Map.ofEntries(
entry("generate-openmaptiles", OpenMapTilesMain::main),
entry("generate-custom", ConfiguredMapMain::main),
entry("openmaptiles", OpenMapTilesMain::main),
entry("example-bikeroutes", BikeRouteOverlay::main),
entry("example-toilets", ToiletsOverlay::main),
entry("example-toilets-lowlevel", ToiletsOverlayLowLevelApi::main),
entry("example-qa", OsmQaTiles::main),
entry("osm-qa", OsmQaTiles::main),
entry("benchmark-mapping", OpenMapTilesMapping::main),
entry("benchmark-longlongmap", LongLongMapBench::main),
entry("verify-mbtiles", Verify::main),
entry("verify-monaco", VerifyMonaco::main)
);
public static void main(String[] args) throws Exception {
EntryPoint task = DEFAULT_TASK;
if (args.length > 0) {
String maybeTask = args[0].trim().toLowerCase(Locale.ROOT);
EntryPoint taskFromArg0 = ENTRY_POINTS.get(maybeTask);
if (taskFromArg0 != null) {
args = Arrays.copyOfRange(args, 1, args.length);
task = taskFromArg0;
} else if (!maybeTask.contains("=") && !maybeTask.startsWith("-")) {
System.err.println("Unrecognized task: " + maybeTask);
System.err.println("possibilities: " + ENTRY_POINTS.keySet());
System.exit(1);
}
}
task.main(args);
}
@FunctionalInterface
private interface EntryPoint {
void main(String[] args) throws Exception;
}
}