kopia lustrzana https://github.com/onthegomap/planetiler
rodzic
fdb9ea6e02
commit
67d530a526
|
@ -7,6 +7,7 @@ import com.onthegomap.planetiler.reader.osm.OsmElement;
|
|||
import com.onthegomap.planetiler.reader.osm.OsmRelationInfo;
|
||||
import com.onthegomap.planetiler.util.Wikidata;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/**
|
||||
|
@ -157,6 +158,8 @@ public interface Profile {
|
|||
return false;
|
||||
}
|
||||
|
||||
default Map<String,String> extraArchiveMetadata() { return Map.of(); }
|
||||
|
||||
/**
|
||||
* Defines whether {@link Wikidata} should fetch wikidata translations for the input element.
|
||||
* <p>
|
||||
|
|
|
@ -17,6 +17,7 @@ import com.onthegomap.planetiler.util.LayerAttrStats;
|
|||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
import org.locationtech.jts.geom.Coordinate;
|
||||
import org.locationtech.jts.geom.Envelope;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -93,7 +94,7 @@ public record TileArchiveMetadata(
|
|||
config.minzoom(),
|
||||
config.maxzoom(),
|
||||
vectorLayers == null ? null : new TileArchiveMetadataJson(vectorLayers),
|
||||
mapWithBuildInfo(),
|
||||
mergeMaps(mapWithBuildInfo(),profile.extraArchiveMetadata()),
|
||||
config.tileCompression()
|
||||
);
|
||||
}
|
||||
|
@ -175,6 +176,12 @@ public record TileArchiveMetadata(
|
|||
* https://github.com/FasterXML/jackson-databind/issues/3439
|
||||
*/
|
||||
|
||||
private static Map<String,String> mergeMaps(Map<String,String> m1, Map<String,String> m2) {
|
||||
var result = new TreeMap<>(m1);
|
||||
result.putAll(m2);
|
||||
return result;
|
||||
}
|
||||
|
||||
@JsonAnySetter
|
||||
private void putUnknownFieldsToOthers(String name, String value) {
|
||||
others.put(name, value);
|
||||
|
|
|
@ -6,11 +6,14 @@ import com.fasterxml.jackson.core.JsonProcessingException;
|
|||
import com.fasterxml.jackson.databind.JsonMappingException;
|
||||
import com.fasterxml.jackson.databind.json.JsonMapper;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.onthegomap.planetiler.FeatureCollector;
|
||||
import com.onthegomap.planetiler.Profile;
|
||||
import com.onthegomap.planetiler.TestUtils;
|
||||
import com.onthegomap.planetiler.VectorTile;
|
||||
import com.onthegomap.planetiler.config.Arguments;
|
||||
import com.onthegomap.planetiler.config.PlanetilerConfig;
|
||||
import com.onthegomap.planetiler.geo.GeoUtils;
|
||||
import com.onthegomap.planetiler.reader.SourceFeature;
|
||||
import com.onthegomap.planetiler.util.LayerAttrStats;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -191,6 +194,30 @@ class TileArchiveMetadataTest {
|
|||
assertEquals(7, Math.ceil(metadata.zoom()));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testAddExtraMetadata() {
|
||||
class TestingProfile extends Profile.NullProfile {
|
||||
|
||||
@Override
|
||||
public String name() {
|
||||
return "My Name";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String,String> extraArchiveMetadata() {
|
||||
return Map.of("FooVersion","2.0");
|
||||
}
|
||||
}
|
||||
|
||||
var metadata = new TileArchiveMetadata(new TestingProfile(), PlanetilerConfig.from(Arguments.of(Map.of(
|
||||
"bounds", "-73.6632,41.1274,-69.7598,43.0185"
|
||||
))));
|
||||
|
||||
var map = new TreeMap<>(metadata.toMap());
|
||||
assertEquals("My Name", map.get("name"));
|
||||
assertEquals("2.0", map.get("FooVersion"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testToMap() throws JsonProcessingException {
|
||||
var bounds = "-73.6632,41.1274,-69.7598,43.0185";
|
||||
|
|
Ładowanie…
Reference in New Issue