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