omit() feature collector api and --refresh-sources arg

omit-and-refresh
Mike Barry 2024-01-30 07:25:25 -05:00
rodzic 4d52507baa
commit aa28d25dab
3 zmienionych plików z 24 dodań i 2 usunięć

Wyświetl plik

@ -797,6 +797,12 @@ public class FeatureCollector implements Iterable<FeatureCollector.Feature> {
return this;
}
/** Omit this feature from the output */
public Feature omit() {
output.remove(this);
return this;
}
@Override
public String toString() {
return "Feature{" +

Wyświetl plik

@ -83,6 +83,7 @@ public class Planetiler {
private final Path multipolygonPath;
private final Path featureDbPath;
private final boolean downloadSources;
private final boolean refreshSources;
private final boolean onlyDownloadSources;
private final boolean parseNodeBounds;
private Profile profile = null;
@ -117,6 +118,8 @@ public class Planetiler {
tmpDir = config.tmpDir();
onlyDownloadSources = arguments.getBoolean("only_download", "download source data then exit", false);
downloadSources = onlyDownloadSources || arguments.getBoolean("download", "download sources", false);
refreshSources =
arguments.getBoolean("refresh_sources", "download new version of source files if they have changed", false);
fetchOsmTileStats =
arguments.getBoolean("download_osm_tile_weights", "download OSM tile weights file", downloadSources);
nodeDbPath = arguments.file("temp_nodes", "temp node db location", tmpDir.resolve("node.db"));
@ -891,11 +894,13 @@ public class Planetiler {
private Path getPath(String name, String type, Path defaultPath, String defaultUrl) {
Path path = arguments.file(name + "_path", name + " " + type + " path", defaultPath);
boolean refresh =
arguments.getBoolean("refresh_" + name, "Download new version of " + name + " if changed", refreshSources);
boolean freeAfterReading = arguments.getBoolean("free_" + name + "_after_read",
"delete " + name + " input file after reading to make space for output (reduces peak disk usage)", false);
if (downloadSources) {
if (downloadSources || refresh) {
String url = arguments.getString(name + "_url", name + " " + type + " url", defaultUrl);
if (!Files.exists(path) && url != null) {
if ((!Files.exists(path) || refresh) && url != null) {
toDownload.add(new ToDownload(name, url, path));
}
}

Wyświetl plik

@ -85,6 +85,17 @@ class FeatureCollectorTest {
}
@Test
void testOmit() {
var collector = factory.get(newReaderFeature(newPoint(0, 0), Map.of(
"key", "val"
)));
var point = collector.point("layername");
assertFeatures(14, List.of(Map.of("_layer", "layername")), collector);
point.omit();
assertFeatures(14, List.of(), collector);
}
@Test
void testAttrWithMinzoom() {
var collector = factory.get(newReaderFeature(newPoint(0, 0), Map.of(