diff --git a/.run/basemap-dev.run.xml b/.run/basemap-dev.run.xml
index 9b68be2a0..50c0b11aa 100644
--- a/.run/basemap-dev.run.xml
+++ b/.run/basemap-dev.run.xml
@@ -6,7 +6,6 @@
-
diff --git a/.run/basemap-mbtiles.run.xml b/.run/basemap-mbtiles.run.xml
index fd32451fa..be5178b3f 100644
--- a/.run/basemap-mbtiles.run.xml
+++ b/.run/basemap-mbtiles.run.xml
@@ -6,7 +6,6 @@
-
diff --git a/.run/basemap-serve.run.xml b/.run/basemap-serve.run.xml
index a4a0153a0..84970ba82 100644
--- a/.run/basemap-serve.run.xml
+++ b/.run/basemap-serve.run.xml
@@ -6,7 +6,6 @@
-
diff --git a/.run/basemap-workflow.run.xml b/.run/basemap-workflow.run.xml
index 714ba264d..7b2b0ee7b 100644
--- a/.run/basemap-workflow.run.xml
+++ b/.run/basemap-workflow.run.xml
@@ -6,7 +6,6 @@
-
diff --git a/.run/openstreetmap-dev.run.xml b/.run/openstreetmap-dev.run.xml
index 9d3997d02..da8a79699 100644
--- a/.run/openstreetmap-dev.run.xml
+++ b/.run/openstreetmap-dev.run.xml
@@ -6,7 +6,6 @@
-
diff --git a/.run/openstreetmap-export.run.xml b/.run/openstreetmap-export.run.xml
index b067f8a05..839a15476 100644
--- a/.run/openstreetmap-export.run.xml
+++ b/.run/openstreetmap-export.run.xml
@@ -6,7 +6,6 @@
-
diff --git a/.run/openstreetmap-serve.run.xml b/.run/openstreetmap-serve.run.xml
index 1f7340c91..7ea6243c5 100644
--- a/.run/openstreetmap-serve.run.xml
+++ b/.run/openstreetmap-serve.run.xml
@@ -6,7 +6,6 @@
-
diff --git a/.run/openstreetmap-workflow.run.xml b/.run/openstreetmap-workflow.run.xml
index 3ba0380fb..b5d72a7a9 100644
--- a/.run/openstreetmap-workflow.run.xml
+++ b/.run/openstreetmap-workflow.run.xml
@@ -6,7 +6,6 @@
-
diff --git a/.run/simplification-workflow.run.xml b/.run/simplification-workflow.run.xml
index ed2fd17a8..8245a3f4f 100644
--- a/.run/simplification-workflow.run.xml
+++ b/.run/simplification-workflow.run.xml
@@ -6,7 +6,6 @@
-
diff --git a/.run/transformation-workflow.run.xml b/.run/transformation-workflow.run.xml
index 9837895b0..9694ee644 100644
--- a/.run/transformation-workflow.run.xml
+++ b/.run/transformation-workflow.run.xml
@@ -6,7 +6,6 @@
-
diff --git a/.run/workflow-execute.run.xml b/.run/workflow-execute.run.xml
index 5532d9964..0c2122b0e 100644
--- a/.run/workflow-execute.run.xml
+++ b/.run/workflow-execute.run.xml
@@ -6,7 +6,6 @@
-
diff --git a/.run/workflow-init.run.xml b/.run/workflow-init.run.xml
index 25218f5c7..876cd6954 100644
--- a/.run/workflow-init.run.xml
+++ b/.run/workflow-init.run.xml
@@ -5,7 +5,6 @@
-
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 9f39acc28..804cc7df5 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -66,7 +66,6 @@ The source code of Baremaps is organized in modules:
- `baremaps-cli` contains the command line interface.
- `baremaps-core` contains the core features.
- `baremaps-server` contains web resources.
-- `baremaps-ogcapi` contains ogcapi resources (experimental).
The naming convention used for the modules is 'baremaps-{component}'.
Here, component corresponds to the api and the main implementation of a component.
diff --git a/baremaps-cli/pom.xml b/baremaps-cli/pom.xml
index bb579c9f2..bb1e853a3 100644
--- a/baremaps-cli/pom.xml
+++ b/baremaps-cli/pom.xml
@@ -63,10 +63,6 @@ limitations under the License.
org.apache.baremaps
baremaps-core
-
- org.apache.baremaps
- baremaps-ogcapi
-
org.apache.baremaps
baremaps-server
diff --git a/baremaps-cli/src/license/override.properties b/baremaps-cli/src/license/override.properties
index d2bc8e2af..a34b3a7b6 100644
--- a/baremaps-cli/src/license/override.properties
+++ b/baremaps-cli/src/license/override.properties
@@ -3,7 +3,6 @@ com.fasterxml.jackson.core--jackson-core--2.13.0=Apache License 2.0
com.fasterxml.jackson.core--jackson-databind--2.13.0=Apache License 2.0
com.fasterxml.jackson.dataformat--jackson-dataformat-csv--2.13.0=Apache License 2.0
com.fasterxml.jackson.dataformat--jackson-dataformat-yaml--2.13.0=Apache License 2.0
-com.fasterxml.jackson.datatype--jackson-datatype-jdk8--2.13.0=Apache License 2.0
com.fasterxml.jackson.datatype--jackson-datatype-jsr310--2.14.2=Apache License 2.0
com.github.ben-manes.caffeine--caffeine--3.1.1=Apache License 2.0
com.github.java-json-tools--btf--1.3=Apache License 2.0
@@ -99,18 +98,6 @@ io.servicetalk--servicetalk-transport-netty--0.42.28=Apache License 2.0
io.servicetalk--servicetalk-transport-netty-internal--0.42.28=Apache License 2.0
io.servicetalk--servicetalk-utils-internal--0.42.28=Apache License 2.0
io.sgr--s2-geometry-library-java--1.0.0=Apache License 2.0
-io.swagger--swagger-annotations--1.6.10=Apache License 2.0
-io.swagger--swagger-compat-spec-parser--1.0.65=Apache License 2.0
-io.swagger--swagger-core--1.6.10=Apache License 2.0
-io.swagger--swagger-models--1.6.10=Apache License 2.0
-io.swagger--swagger-parser--1.0.65=Apache License 2.0
-io.swagger.core.v3--swagger-annotations--2.2.9=Apache License 2.0
-io.swagger.core.v3--swagger-core--2.2.9=Apache License 2.0
-io.swagger.core.v3--swagger-models--2.2.9=Apache License 2.0
-io.swagger.parser.v3--swagger-parser--2.1.13=Apache License 2.0
-io.swagger.parser.v3--swagger-parser-core--2.1.13=Apache License 2.0
-io.swagger.parser.v3--swagger-parser-v2-converter--2.1.13=Apache License 2.0
-io.swagger.parser.v3--swagger-parser-v3--2.1.13=Apache License 2.0
it.unimi.dsi--fastutil--8.5.9=Apache License 2.0
jakarta.activation--jakarta.activation-api--1.2.2=Eclipse Distribution License 1.0
jakarta.annotation--jakarta.annotation-api--1.3.5=Eclipse Public License 2.0
@@ -137,7 +124,6 @@ net.ripe.ipresource--ipresource--1.49=BSD License
net.sf.jopt-simple--jopt-simple--5.0.4=MIT License
org.antlr--antlr4-runtime--4.5.1-1=BSD License
org.apache.baremaps--baremaps-core--0.7.2-SNAPSHOT=Apache License 2.0
-org.apache.baremaps--baremaps-ogcapi--0.7.2-SNAPSHOT=Apache License 2.0
org.apache.baremaps--baremaps-server--0.7.2-SNAPSHOT=Apache License 2.0
org.apache.calcite--calcite-core--1.34.0=Apache License 2.0
org.apache.calcite--calcite-linq4j--1.34.0=Apache License 2.0
diff --git a/baremaps-cli/src/main/java/org/apache/baremaps/cli/Baremaps.java b/baremaps-cli/src/main/java/org/apache/baremaps/cli/Baremaps.java
index 15c264f8e..e931ff656 100644
--- a/baremaps-cli/src/main/java/org/apache/baremaps/cli/Baremaps.java
+++ b/baremaps-cli/src/main/java/org/apache/baremaps/cli/Baremaps.java
@@ -28,7 +28,6 @@
import org.apache.baremaps.cli.geocoder.Geocoder;
import org.apache.baremaps.cli.iploc.IpLoc;
import org.apache.baremaps.cli.map.Map;
-import org.apache.baremaps.cli.ogcapi.OgcApi;
import org.apache.baremaps.cli.workflow.Workflow;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.core.config.Configurator;
@@ -39,7 +38,7 @@
@Command(name = "baremaps", description = "A toolkit for producing vector tiles.",
versionProvider = VersionProvider.class, subcommands = {Workflow.class, Database.class,
- Map.class, Geocoder.class, IpLoc.class, OgcApi.class},
+ Map.class, Geocoder.class, IpLoc.class},
sortOptions = false)
public class Baremaps implements Callable {
diff --git a/baremaps-cli/src/main/java/org/apache/baremaps/cli/ogcapi/OgcApi.java b/baremaps-cli/src/main/java/org/apache/baremaps/cli/ogcapi/OgcApi.java
deleted file mode 100644
index 1f345d657..000000000
--- a/baremaps-cli/src/main/java/org/apache/baremaps/cli/ogcapi/OgcApi.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.baremaps.cli.ogcapi;
-
-import static io.servicetalk.data.jackson.jersey.ServiceTalkJacksonSerializerFeature.newContextResolver;
-import static org.apache.baremaps.utils.ObjectMapperUtils.objectMapper;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.github.benmanes.caffeine.cache.CaffeineSpec;
-import io.servicetalk.http.api.BlockingStreamingHttpService;
-import io.servicetalk.http.netty.HttpServers;
-import io.servicetalk.http.router.jersey.HttpJerseyRouterBuilder;
-import io.servicetalk.transport.api.ServerContext;
-import java.nio.file.Path;
-import java.util.concurrent.Callable;
-import javax.sql.DataSource;
-import org.apache.baremaps.cli.Options;
-import org.apache.baremaps.config.ConfigReader;
-import org.apache.baremaps.ogcapi.*;
-import org.apache.baremaps.server.CorsFilter;
-import org.apache.baremaps.tilestore.TileCache;
-import org.apache.baremaps.tilestore.TileStore;
-import org.apache.baremaps.tilestore.postgres.PostgresTileStore;
-import org.apache.baremaps.utils.PostgresUtils;
-import org.apache.baremaps.vectortile.tileset.Tileset;
-import org.glassfish.hk2.utilities.binding.AbstractBinder;
-import org.glassfish.jersey.media.multipart.MultiPartFeature;
-import org.glassfish.jersey.server.ResourceConfig;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import picocli.CommandLine.Command;
-import picocli.CommandLine.Mixin;
-import picocli.CommandLine.Option;
-
-@Command(name = "ogcapi", description = "OGC API server (experimental).")
-public class OgcApi implements Callable {
-
- private static final Logger logger = LoggerFactory.getLogger(OgcApi.class);
-
- @Mixin
- private Options options;
-
- @Option(names = {"--database"}, paramLabel = "DATABASE",
- description = "The JDBC url of Postgres.", required = true)
- private String database;
-
- @Option(names = {"--cache"}, paramLabel = "CACHE", description = "The caffeine cache directive.")
- private String cache = "";
-
- @Option(names = {"--tileset"}, paramLabel = "TILESET", description = "The tileset file.",
- required = true)
- private Path tileset;
-
- @Option(names = {"--style"}, paramLabel = "STYLE", description = "The style file.",
- required = true)
- private Path style;
-
- @Option(names = {"--host"}, paramLabel = "HOST", description = "The host of the server.")
- private String host = "localhost";
-
- @Option(names = {"--port"}, paramLabel = "PORT", description = "The port of the server.")
- private int port = 9000;
-
- @Override
- public Integer call() throws Exception {
- // Configure serialization
- var objectMapper = objectMapper();
- var configReader = new ConfigReader();
- var config = objectMapper.readValue(configReader.read(this.tileset), Tileset.class);
- var caffeineSpec = CaffeineSpec.parse(cache);
- var dataSource = PostgresUtils.createDataSource(database);
-
- var tileStore = new PostgresTileStore(dataSource, config);
- var tileCache = new TileCache(tileStore, caffeineSpec);
-
- // Initialize the application
- var application = new ResourceConfig()
- .registerClasses(
- CorsFilter.class,
- MultiPartFeature.class,
- DefaultResource.class,
- ApiResource.class,
- ConformanceResource.class,
- CollectionsResource.class,
- StylesResource.class,
- TilesResource.class)
- .register(newContextResolver(objectMapper))
- .register(new AbstractBinder() {
- @Override
- protected void configure() {
- bind(tileset).to(Path.class).named("tileset");
- bind(style).to(Path.class).named("style");
- bind(dataSource).to(DataSource.class);
- bind(tileCache).to(TileStore.class);
- bind(objectMapper).to(ObjectMapper.class);
- }
- });
-
- BlockingStreamingHttpService httpService =
- new HttpJerseyRouterBuilder().buildBlockingStreaming(application);
- ServerContext serverContext =
- HttpServers.forPort(port).listenBlockingStreamingAndAwait(httpService);
-
- logger.info("Listening on {}", serverContext.listenAddress());
-
- serverContext.awaitShutdown();
-
- return 0;
- }
-}
diff --git a/baremaps-core/pom.xml b/baremaps-core/pom.xml
index 2b61c4039..68a427dbd 100644
--- a/baremaps-core/pom.xml
+++ b/baremaps-core/pom.xml
@@ -46,10 +46,6 @@ limitations under the License.
com.fasterxml.jackson.dataformat
jackson-dataformat-yaml
-
- com.fasterxml.jackson.datatype
- jackson-datatype-jdk8
-
com.github.ben-manes.caffeine
caffeine
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/vectortile/tilejson/TileJSON.java b/baremaps-core/src/main/java/org/apache/baremaps/vectortile/tilejson/TileJSON.java
index b8a07f5ca..da5787f8b 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/vectortile/tilejson/TileJSON.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/vectortile/tilejson/TileJSON.java
@@ -27,10 +27,6 @@
*
* Mainly used to project the `--tileset` configuration file to a version for clients.
*
- *
- * Implementation notes: Could not be implemented with Java Record because a class was using a
- * setter post instance creation (in baremaps-ogcapi).
- *
* @see
* https://docs.mapbox.com/help/glossary/tilejson/
* @see
diff --git a/baremaps-ogcapi/pom.xml b/baremaps-ogcapi/pom.xml
deleted file mode 100644
index 2d24ecfb5..000000000
--- a/baremaps-ogcapi/pom.xml
+++ /dev/null
@@ -1,165 +0,0 @@
-
-
-
-
- 4.0.0
-
-
- org.apache.baremaps
- baremaps
- 0.7.3-SNAPSHOT
-
- baremaps-ogcapi
- jar
- baremaps-ogcapi
-
-
-
- io.servicetalk
- servicetalk-data-jackson
- test
-
-
- io.servicetalk
- servicetalk-data-jackson-jersey
- test
-
-
- io.servicetalk
- servicetalk-http-netty
- test
-
-
- io.servicetalk
- servicetalk-http-router-jersey
- test
-
-
- io.servicetalk
- servicetalk-transport-netty
- test
-
-
-
- io.swagger.parser.v3
- swagger-parser
-
-
- org.apache.baremaps
- baremaps-core
-
-
- org.glassfish.jaxb
- jaxb-runtime
-
-
- org.glassfish.jersey.inject
- jersey-hk2
-
-
- org.glassfish.jersey.media
- jersey-media-json-jackson
- test
-
-
- org.glassfish.jersey.media
- jersey-media-multipart
-
-
- org.glassfish.jersey.media
- jersey-media-sse
-
-
- org.glassfish.jersey.test-framework
- jersey-test-framework-util
- test
-
-
- org.glassfish.jersey.test-framework.providers
- jersey-test-framework-provider-inmemory
- test
-
-
- org.junit.vintage
- junit-vintage-engine
- test
-
-
- org.postgresql
- postgresql
-
-
-
-
-
-
- true
- src/main/resources
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- ${version.plugin.maven-surefire-plugin}
-
- **/ogcapi/*Test.java
- integration
-
-
-
- org.apache.maven.surefire
- surefire-junit4
- ${version.plugin.maven-surefire-plugin}
-
-
-
-
- org.openapitools
- openapi-generator-maven-plugin
- ${version.plugin.openapi-generator-maven-plugin}
-
-
- ogcapi
-
- generate
-
-
- ${project.basedir}/src/main/resources/ogcapi.yaml
- jaxrs-spec
-
- org.apache.baremaps.ogcapi.api
- true
- org.apache.baremaps.ogcapi.model
- true
- false
- false
- false
- src/gen/java/main
-
- false
-
-
-
-
-
-
-
-
-
diff --git a/baremaps-ogcapi/src/main/java/org/apache/baremaps/ogcapi/ApiResource.java b/baremaps-ogcapi/src/main/java/org/apache/baremaps/ogcapi/ApiResource.java
deleted file mode 100644
index 85497efe4..000000000
--- a/baremaps-ogcapi/src/main/java/org/apache/baremaps/ogcapi/ApiResource.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.baremaps.ogcapi;
-
-
-
-import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
-import com.google.common.io.Resources;
-import io.swagger.util.Json;
-import io.swagger.v3.oas.models.servers.Server;
-import io.swagger.v3.parser.OpenAPIV3Parser;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
-import java.util.List;
-import javax.inject.Singleton;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-
-/**
- * A resources that provides the OpenAPI specification and the Swagger UI.
- */
-@Singleton
-@Path("/")
-public class ApiResource {
-
- @Context
- UriInfo uriInfo;
-
- private static final String SWAGGER = "swagger.html";
-
- private static final String MAP = "map.html";
-
- private static final String OPENAPI = "ogcapi.yaml";
-
- /**
- * Constructs an {@code ApiResource}.
- */
- public ApiResource() {}
-
- /**
- * Returns the Swagger UI.
- *
- * @return the Swagger UI
- * @throws IOException if an I/O error occurs
- */
- @GET
- @Path("/swagger")
- @Produces({"text/html"})
- public Response getSwaggerUI() throws IOException {
- try (InputStream inputStream = Resources.getResource(SWAGGER).openStream()) {
- return Response.ok().entity(inputStream.readAllBytes()).build();
- }
- }
-
- /**
- * Returns the map UI.
- *
- * @return the map UI
- * @throws IOException if an I/O error occurs
- */
- @GET
- @Path("/map")
- @Produces({"text/html"})
- public Response getMap() throws IOException {
- try (InputStream inputStream = Resources.getResource(MAP).openStream()) {
- return Response.ok(inputStream.readAllBytes()).build();
- }
- }
-
- /**
- * Returns the OpenAPI specification in JSON format.
- *
- * @return the OpenAPI specification
- * @throws IOException if an I/O error occurs
- */
- @GET
- @Path("/api")
- @Produces({"application/json"})
- public Response getJsonSpecification() throws IOException {
- try (InputStream inputStream = Resources.getResource(OPENAPI).openStream()) {
- var openAPI = new OpenAPIV3Parser()
- .readContents(new String(inputStream.readAllBytes(), StandardCharsets.UTF_8))
- .getOpenAPI();
- openAPI.setServers(List.of(new Server().url(
- String.format(
- "%s://%s:%s/",
- uriInfo.getBaseUri().getScheme(),
- uriInfo.getBaseUri().getHost(),
- uriInfo.getBaseUri().getPort()))));
- var mapper = Json.mapper();
- mapper.registerModule(new JavaTimeModule());
- var json = mapper.writeValueAsString(openAPI);
- return Response.ok(json).build();
- }
- }
-}
diff --git a/baremaps-ogcapi/src/main/java/org/apache/baremaps/ogcapi/CollectionsResource.java b/baremaps-ogcapi/src/main/java/org/apache/baremaps/ogcapi/CollectionsResource.java
deleted file mode 100644
index 5d589c49c..000000000
--- a/baremaps-ogcapi/src/main/java/org/apache/baremaps/ogcapi/CollectionsResource.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.baremaps.ogcapi;
-
-import java.util.Date;
-import java.util.List;
-import javax.inject.Inject;
-import javax.inject.Singleton;
-import javax.sql.DataSource;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-import org.apache.baremaps.database.schema.DataTable;
-import org.apache.baremaps.ogcapi.api.CollectionsApi;
-import org.apache.baremaps.ogcapi.model.Collection;
-import org.apache.baremaps.ogcapi.model.Collections;
-import org.apache.baremaps.ogcapi.model.Link;
-import org.apache.baremaps.storage.postgres.PostgresDataSchema;
-
-/**
- * A resource that provides access to collections.
- */
-@Singleton
-public class CollectionsResource implements CollectionsApi {
-
- @Context
- UriInfo uriInfo;
-
- private final PostgresDataSchema schema;
-
- /**
- * Constructs a {@code CollectionsResource}.
- *
- * @param dataSource the datasource
- */
- @Inject
- public CollectionsResource(DataSource dataSource) {
- this.schema = new PostgresDataSchema(dataSource);
- }
-
- /**
- * Returns the collections.
- *
- * @return the collections
- */
- @Override
- public Response getCollections() {
- Collections collections = new Collections();
- collections.setTimeStamp(new Date());
- collections.setCollections(schema.list().stream()
- .map(schema::get)
- .map(this::getCollection)
- .toList());
- return Response.ok().entity(collections).build();
- }
-
- /**
- * Returns the collection with the specified id.
- *
- * @param collectionId the collection id
- * @return the collection
- */
- @Override
- public Response getCollection(String collectionId) {
- var table = schema.get(collectionId);
- var collectionInfo = getCollection(table);
- return Response.ok().entity(collectionInfo).build();
- }
-
- /**
- * Returns the collection info for the specified table.
- *
- * @param table the table
- * @return the collection info
- */
- private Collection getCollection(DataTable table) {
- var name = table.rowType().name();
- var collection = new Collection();
- collection.setId(name);
- collection.setTitle(name);
- collection.setDescription(name);
- collection.setLinks(List.of(
- new Link()
- .href(uriInfo.getBaseUriBuilder().path("collections").path(name).build().toString())
- .rel("items")
- .type("application/json")));
- return collection;
- }
-}
diff --git a/baremaps-ogcapi/src/main/java/org/apache/baremaps/ogcapi/ConformanceResource.java b/baremaps-ogcapi/src/main/java/org/apache/baremaps/ogcapi/ConformanceResource.java
deleted file mode 100644
index 082f35366..000000000
--- a/baremaps-ogcapi/src/main/java/org/apache/baremaps/ogcapi/ConformanceResource.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.baremaps.ogcapi;
-
-
-
-import java.util.Arrays;
-import javax.inject.Singleton;
-import javax.ws.rs.core.Response;
-import org.apache.baremaps.ogcapi.api.ConformanceApi;
-import org.apache.baremaps.ogcapi.model.ConformanceClasses;
-
-/**
- * The conformance resource.
- */
-@Singleton
-public class ConformanceResource implements ConformanceApi {
-
- /**
- * Get the conformance classes.
- */
- @Override
- public Response getConformance() {
- ConformanceClasses confClasses = new ConformanceClasses();
- confClasses.setConformsTo(Arrays.asList(
- "https://www.opengis.net/spec/ogcapi-common-1/1.0/conf/core",
- "https://www.opengis.net/spec/ogcapi-styles-1/1.0/conf/core",
- "https://www.opengis.net/spec/ogcapi-styles-1/1.0/conf/json",
- "https://www.opengis.net/spec/ogcapi-styles-1/1.0/conf/mapbox-styles",
- "https://www.opengis.net/spec/ogcapi-tiles-1/1.0/conf/core",
- "https://www.opengis.net/spec/ogcapi-tiles-1/1.0/conf/tileset"));
- return Response.ok().entity(confClasses).build();
- }
-}
diff --git a/baremaps-ogcapi/src/main/java/org/apache/baremaps/ogcapi/DefaultResource.java b/baremaps-ogcapi/src/main/java/org/apache/baremaps/ogcapi/DefaultResource.java
deleted file mode 100644
index 001bdf149..000000000
--- a/baremaps-ogcapi/src/main/java/org/apache/baremaps/ogcapi/DefaultResource.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.baremaps.ogcapi;
-
-
-
-import java.util.Arrays;
-import javax.inject.Singleton;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-import org.apache.baremaps.ogcapi.api.DefaultApi;
-import org.apache.baremaps.ogcapi.model.LandingPage;
-import org.apache.baremaps.ogcapi.model.Link;
-
-/**
- * Root resource (exposed at "/" path).
- */
-@Singleton
-public class DefaultResource implements DefaultApi {
-
- @Context
- UriInfo uriInfo;
-
- /**
- * Get the landing page.
- *
- * @return the landing page
- */
- @Override
- public Response getLandingPage() {
- var baseURI = uriInfo.getBaseUri().toString();
- var landingPage =
- new LandingPage().title("Baremaps").description("Baremaps OGC API Landing Page")
- .links(Arrays.asList(
- new Link()
- .title("This document (landing page)")
- .href(baseURI)
- .type("application/json")
- .rel("self"),
- new Link()
- .title("Conformance declaration")
- .href(baseURI + "conformance")
- .type("application/json")
- .rel("conformance"),
- new Link()
- .title("API description")
- .href(baseURI + "api")
- .type("application/json")
- .rel("service-desc"),
- new Link()
- .title("API description")
- .href(baseURI + "api")
- .type("application/yaml")
- .rel("service-desc"),
- new Link()
- .title("API documentation")
- .href(baseURI + "swagger")
- .type("text/html")
- .rel("service-doc")));
- return Response.ok(landingPage).build();
- }
-}
diff --git a/baremaps-ogcapi/src/main/java/org/apache/baremaps/ogcapi/StylesResource.java b/baremaps-ogcapi/src/main/java/org/apache/baremaps/ogcapi/StylesResource.java
deleted file mode 100644
index 77244e908..000000000
--- a/baremaps-ogcapi/src/main/java/org/apache/baremaps/ogcapi/StylesResource.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.baremaps.ogcapi;
-
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import java.io.IOException;
-import java.nio.file.Path;
-import java.util.List;
-import java.util.Map;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-import org.apache.baremaps.config.ConfigReader;
-import org.apache.baremaps.ogcapi.api.StylesApi;
-import org.apache.baremaps.ogcapi.model.StyleSet;
-import org.apache.baremaps.ogcapi.model.StyleSetEntry;
-import org.apache.baremaps.vectortile.style.Style;
-import org.apache.baremaps.vectortile.style.StyleSource;
-
-/**
- * The styles resource.
- */
-@Singleton
-public class StylesResource implements StylesApi {
-
- private final Style style;
-
- /**
- * Constructs a {@code StylesResource}.
- *
- * @param style
- * @param objectMapper
- * @throws IOException
- */
- @Inject
- public StylesResource(@Context UriInfo uriInfo, @Named("style") Path style,
- ObjectMapper objectMapper) throws IOException {
- this.style = objectMapper.readValue(new ConfigReader().read(style), Style.class);
- var source = new StyleSource();
- source.setType("vector");
- source.setUrl(uriInfo.getBaseUri().toString() + "tiles/default");
- this.style.setSources(Map.of("baremaps", source));
- }
-
- /**
- * Get the style set.
- */
- @Override
- public Response getStyleSet() {
- var styleSetEntry = new StyleSetEntry();
- styleSetEntry.setId("default");
- var styleSet = new StyleSet();
- styleSet.setStyles(List.of(styleSetEntry));
- return Response.ok(styleSet).build();
- }
-
- /**
- * Get the style.
- */
- @Override
- public Response getStyle(String styleId) {
- return Response.ok(style).build();
- }
-
- /**
- * Get the style metadata.
- */
- @Override
- public Response getStyleMetadata(String styleId) {
- throw new UnsupportedOperationException();
- }
-}
diff --git a/baremaps-ogcapi/src/main/java/org/apache/baremaps/ogcapi/TilesResource.java b/baremaps-ogcapi/src/main/java/org/apache/baremaps/ogcapi/TilesResource.java
deleted file mode 100644
index 512b68580..000000000
--- a/baremaps-ogcapi/src/main/java/org/apache/baremaps/ogcapi/TilesResource.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.baremaps.ogcapi;
-
-import static com.google.common.net.HttpHeaders.*;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.nio.file.Path;
-import java.util.List;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-import org.apache.baremaps.config.ConfigReader;
-import org.apache.baremaps.ogcapi.api.TilesApi;
-import org.apache.baremaps.ogcapi.model.TileSetItem;
-import org.apache.baremaps.ogcapi.model.TileSets;
-import org.apache.baremaps.tilestore.TileCoord;
-import org.apache.baremaps.tilestore.TileStore;
-import org.apache.baremaps.tilestore.TileStoreException;
-import org.apache.baremaps.vectortile.tilejson.TileJSON;
-
-@Singleton
-public class TilesResource implements TilesApi {
-
- public static final String TILE_ENCODING = "gzip";
-
- public static final String TILE_TYPE = "application/vnd.mapbox-vector-tile";
-
- private final TileJSON tileJSON;
-
- private final TileStore tileStore;
-
- /**
- * Constructs a {@code StylesResource}.
- *
- * @param uriInfo
- * @param tilesetPath
- * @param objectMapper
- * @throws IOException
- */
- @Inject
- public TilesResource(@Context UriInfo uriInfo, @Named("tileset") Path tilesetPath,
- ObjectMapper objectMapper, TileStore tileStore) throws IOException {
- this.tileJSON = objectMapper.readValue(new ConfigReader().read(tilesetPath), TileJSON.class);
- this.tileJSON.setTiles(List.of(uriInfo.getBaseUri().toString() + "tiles/default/{z}/{x}/{y}"));
- this.tileStore = tileStore;
- }
-
- /**
- * Get the tile sets.
- */
- @Override
- public Response getTileSets() {
- var tileSetItem = new TileSetItem();
- tileSetItem.setTitle("default");
- var tileSets = new TileSets();
- tileSets.setTileSets(List.of(tileSetItem));
- return Response.ok(tileSets).build();
- }
-
- /**
- * Get the tile set with the specified id.
- *
- * @param tileSetId the tile set id
- * @return the tile set
- */
- @Override
- public Response getTileSet(String tileSetId) {
- return Response.ok(tileJSON).build();
- }
-
- /**
- * Get the tile with the specified parameters.
- *
- * @param tileSetId the tile set id
- * @param tileMatrix the tile matrix
- * @param tileRow the tile row
- * @param tileCol the tile column
- * @return the tile
- */
- @Override
- public Response getTile(String tileSetId, String tileMatrix, Integer tileRow, Integer tileCol) {
- int z = Integer.parseInt(tileMatrix);
- int x = tileRow;
- int y = tileCol;
- TileCoord tileCoord = new TileCoord(x, y, z);
- try {
- ByteBuffer blob = tileStore.read(tileCoord);
- if (blob != null) {
- return Response.status(200) // lgtm [java/xss]
- .header(ACCESS_CONTROL_ALLOW_ORIGIN, "*")
- .header(CONTENT_TYPE, TILE_TYPE)
- .header(CONTENT_ENCODING, TILE_ENCODING)
- .entity(blob.array())
- .build();
- } else {
- return Response.status(204).build();
- }
- } catch (TileStoreException ex) {
- return Response.status(404).build();
- }
- }
-}
diff --git a/baremaps-ogcapi/src/main/resources/initialize_ogcapi_tables.sql b/baremaps-ogcapi/src/main/resources/initialize_ogcapi_tables.sql
deleted file mode 100644
index e89c7dbd1..000000000
--- a/baremaps-ogcapi/src/main/resources/initialize_ogcapi_tables.sql
+++ /dev/null
@@ -1,14 +0,0 @@
-create table if not exists collections (
- id uuid primary key,
- collection jsonb
-);
-
-create table if not exists styles (
- id uuid primary key,
- style jsonb
-);
-
-create table if not exists tilesets (
- id uuid primary key,
- tileset jsonb
-);
diff --git a/baremaps-ogcapi/src/main/resources/initialize_studio_tables.sql b/baremaps-ogcapi/src/main/resources/initialize_studio_tables.sql
deleted file mode 100644
index df5cc1322..000000000
--- a/baremaps-ogcapi/src/main/resources/initialize_studio_tables.sql
+++ /dev/null
@@ -1,7 +0,0 @@
-create schema studio;
-
-create table if not exists studio.entities (
- id uuid primary key,
- entity jsonb,
- kind text
-);
\ No newline at end of file
diff --git a/baremaps-ogcapi/src/main/resources/log4j2.xml b/baremaps-ogcapi/src/main/resources/log4j2.xml
deleted file mode 100644
index 55c7602fd..000000000
--- a/baremaps-ogcapi/src/main/resources/log4j2.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/baremaps-ogcapi/src/main/resources/map.html b/baremaps-ogcapi/src/main/resources/map.html
deleted file mode 100644
index 744b8b56f..000000000
--- a/baremaps-ogcapi/src/main/resources/map.html
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
-
-
-
- Baremaps
-
-
-
-
-
-
diff --git a/baremaps-ogcapi/src/main/resources/ogcapi.yaml b/baremaps-ogcapi/src/main/resources/ogcapi.yaml
deleted file mode 100644
index b9a4b331f..000000000
--- a/baremaps-ogcapi/src/main/resources/ogcapi.yaml
+++ /dev/null
@@ -1,2745 +0,0 @@
-openapi: 3.0.0
-info:
- contact:
- email: dev@baremaps.apache.org
- name: Apache Baremaps API
- description: An implementation of OGC APIs for Apache Baremaps
- license:
- name: OGC License
- url: http://www.opengeospatial.org/legal/
- title: Apache Baremaps API
- version: "1.0"
-servers:
- - description: Server
- url: https://localhost:9000
-paths:
- /:
- get:
- operationId: getLandingPage
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/landingPage'
- description: |-
- The landing page provides links to the API definition (link relation `service-desc`, in this case path `/api`),
- to the Conformance declaration (path `/conformance`, link relation `conformance`), and to the Collections of geospatial data (path `/collections`, link relation `data`).
- "406":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/exception'
- description: "Content negotiation failed. For example, the `Accept` header\
- \ submitted in the request did not support any of the media types supported\
- \ by the server for the requested resource."
- "500":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/exception'
- description: A server error occurred.
- summary: Retrieve the OGC API landing page for this service.
- tags:
- - Landing Page
- /conformance:
- get:
- operationId: getConformance
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/getConformance_200_response'
- description: The URIs of all conformance classes supported by the server
- "406":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/exception'
- description: "Content negotiation failed. For example, the `Accept` header\
- \ submitted in the request did not support any of the media types supported\
- \ by the server for the requested resource."
- "500":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/exception'
- description: A server error occurred.
- summary: Retrieve the set of OGC API conformance classes that are supported
- by this service.
- tags:
- - Conformance
- /collections:
- get:
- operationId: getCollections
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/collections'
- description: |-
- The collections of (mostly geospatial) data available from this API. The dataset contains one or more collections. This resource provides information about and access to the collections. The response contains the list of collections. Each collection is accessible via one or more OGC API set of specifications, for which a link to relevant accessible resources, e.g. /collections/{collectionId}/(items, coverage, map, tiles...) is provided, with the corresponding relation type, as well as key information about the collection. This information includes:
- * a local identifier for the collection that is unique for the dataset;
- * a list of coordinate reference systems (CRS) in which data may be returned by the server. The first CRS is the default coordinate reference system (the default is always WGS 84 with axis order longitude/latitude);
- * an optional title and description for the collection;
- * an optional extent that can be used to provide an indication of the spatial and temporal extent of the collection - typically derived from the data;
- * for collections accessible via the Features or Records API, an optional indicator about the type of the items in the collection (the default value, if the indicator is not provided, is 'feature').
- summary: Retrieve the list of geospatial data collections available from this
- service.
- tags:
- - Collections
- /collections/{collectionId}:
- get:
- operationId: getCollection
- parameters:
- - description: Local identifier of a collection
- explode: false
- in: path
- name: collectionId
- required: true
- schema:
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/collection'
- description: |-
- Information about a particular collection of (mostly geospatial) data available from this API. The collection is accessible via one or more OGC API set of specifications, for which a link to relevant accessible resources, e.g. /collections/{collectionId}/(items, coverage, map, tiles...) is contained in the response, with the corresponding relation type, as well as key information about the collection. This information includes:
- * a local identifier for the collection that is unique for the dataset;
- * a list of coordinate reference systems (CRS) in which data may be returned by the server. The first CRS is the default coordinate reference system (the default is always WGS 84 with axis order longitude/latitude);
- * an optional title and description for the collection;
- * an optional extent that can be used to provide an indication of the spatial and temporal extent of the collection - typically derived from the data;
- * for collections accessible via the Features or Records API, an optional indicator about the type of the items in the collection (the default value, if the indicator is not provided, is 'feature').
- summary: Retrieve the description of a collection available from this service.
- tags:
- - Collections
- /styles:
- get:
- description: "This operation fetches the set of styles available. For\neach\
- \ style the id, a title, links to the stylesheet of\nthe style in each supported\
- \ encoding, and the link to the \nmetadata is provided.\n\nTestbed-15 only\
- \ requires support for a small number of the\nstyles. Therefore, the currently\
- \ simple approach is sufficient,\nbut in general the operation should support\
- \ paging (using a \nparameter `limit` and links to the `next` page in responses)."
- operationId: getStyleSet
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/style-set'
- description: the set of available styles
- "400":
- description: invalid or unknown query parameters
- "406":
- description: "The media types accepted by the client are not \nsupported\
- \ for this resource"
- summary: information about the available styles
- tags:
- - Styles
- /styles/{styleId}:
- get:
- description: "Fetches the style with identifier `styleId`. The set of \navailable\
- \ styles can be retrieved at `/styles`.\n\nNot all styles are available in\
- \ all style encodings."
- operationId: getStyle
- parameters:
- - description: "Local identifier of a style. \\\nA list of all available styles\
- \ can be found \nunder the /styles path."
- explode: false
- in: path
- name: styleId
- required: true
- schema:
- type: string
- style: simple
- responses:
- "200":
- content:
- application/vnd.mapbox.style+json:
- schema:
- $ref: '#/components/schemas/mb-style'
- application/json:
- schema:
- $ref: '#/components/schemas/mb-style'
- description: The style
- "404":
- description: style not found
- "406":
- description: "The requested style encoding is not supported \nfor this style"
- summary: fetch a style by id
- tags:
- - Styles
- /styles/{styleId}/metadata:
- get:
- description: "Style metadata is essential information about a style\nin order\
- \ to support users to discover and select styles\nfor rendering their data\
- \ and for visual style editors \nto create user interfaces for editing a style.\n\
- \nThis operations returns the metadata for the requested\nstyle as a single\
- \ document.\n\nThe stylesheet of the style will typically include some\nthe\
- \ metadata, too."
- operationId: getStyleMetadata
- parameters:
- - description: "Local identifier of a style. \\\nA list of all available styles\
- \ can be found \nunder the /styles path."
- explode: false
- in: path
- name: styleId
- required: true
- schema:
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/style-metadata'
- description: The metdata for the style.
- "404":
- description: style not found
- summary: fetch the metadata about a style
- tags:
- - Styles
- /tiles:
- get:
- operationId: getTileSets
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/tileSets'
- description: List of available tileSets.
- "404":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/exception'
- description: "The requested resource does not exist on the server. For example,\
- \ a path parameter had an incorrect value."
- "500":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/exception'
- description: A server error occurred.
- summary: Retrieve a list of available vector tileSets for the dataset
- tags:
- - Vector Tiles
- /tiles/{tileSetId}:
- get:
- operationId: getTileSet
- parameters:
- - description: Identifier for a supported TileMatrixSet
- explode: false
- in: path
- name: tileSetId
- required: true
- schema:
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/tileSet'
- description: Description of the tileSet
- "404":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/exception'
- description: "The requested resource does not exist on the server. For example,\
- \ a path parameter had an incorrect value."
- "500":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/exception'
- description: A server error occurred.
- summary: Retrieve the vector tileSet metadata for the whole dataset and the
- specified tiling scheme (tile matrix set)
- tags:
- - Vector Tiles
- /tiles/{tileSetId}/{tileMatrix}/{tileRow}/{tileCol}:
- get:
- operationId: getTile
- parameters:
- - description: Identifier for a supported TileMatrixSet
- explode: false
- in: path
- name: tileSetId
- required: true
- schema:
- type: string
- style: simple
- - description: |-
- Identifier selecting one of the scales defined in the TileMatrixSet and representing the scaleDenominator the tile. For example,
- Ireland is fully within the Tile at WebMercatorQuad tileMatrix=5, tileRow=10 and tileCol=15.
- explode: false
- in: path
- name: tileMatrix
- required: true
- schema:
- type: string
- style: simple
- - description: "Row index of the tile on the selected TileMatrix. It cannot\
- \ exceed the MatrixWidth-1 for the selected TileMatrix. For example, Ireland\
- \ is fully within the Tile at WebMercatorQuad tileMatrix=5, tileRow=10 and\
- \ tileCol=15."
- explode: false
- in: path
- name: tileRow
- required: true
- schema:
- minimum: 0
- type: integer
- style: simple
- - description: "Column index of the tile on the selected TileMatrix. It cannot\
- \ exceed the MatrixHeight-1 for the selected TileMatrix. For example, Ireland\
- \ is fully within the Tile at WebMercatorQuad tileMatrix=5, tileRow=10 and\
- \ tileCol=15."
- explode: false
- in: path
- name: tileCol
- required: true
- schema:
- minimum: 0
- type: integer
- style: simple
- responses:
- "200":
- content:
- application/vnd.mapbox-vector-tile:
- schema:
- format: binary
- type: string
- description: A vector tile returned as a response.
- "204":
- description: No data available for this tile.
- "404":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/exception'
- description: "The requested resource does not exist on the server. For example,\
- \ a path parameter had an incorrect value."
- "500":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/exception'
- description: A server error occurred.
- summary: Retrieve a vector tile including one or more collections from the dataset.
- tags:
- - Vector Tiles
-components:
- parameters:
- offset:
- description: |-
- The optional offset parameter indicates the index within the result set
- from which the server shall begin presenting results in the response
- document. The first element has an index of 0.
-
- Minimum = 0. Default = 0.
- explode: false
- in: query
- name: offset
- required: false
- schema:
- default: 0
- minimum: 0
- type: integer
- style: form
- resultType:
- description: |-
- This service will respond to a query in one of two ways (excluding an
- exception response). It may either generate a complete response document
- containing resources that satisfy the operation or it may simply
- generate an empty response container that indicates the count of the
- total number of resources that the operation would return. Which of
- these two responses is generated is determined by the value of the
- optional resultType parameter.
-
- The allowed values for this parameter are "results" and "hits".
-
- If the value of the resultType parameter is set to "results", the server
- will generate a complete response document containing resources that
- satisfy the operation.
-
- If the value of the resultType attribute is set to "hits", the server
- will generate an empty response document containing no resource
- instances.
-
- The default value is "results".
- explode: false
- in: query
- name: resultType
- required: false
- schema:
- default: results
- enum:
- - hits
- - results
- type: string
- style: form
- properties:
- description: |-
- The properties that should be included for each feature. The parameter
- value is a comma-separated list of property names.
- explode: false
- in: query
- name: properties
- required: false
- schema:
- items:
- type: string
- type: array
- style: form
- f-html-json:
- description: "(informative) \\\nThe content type of the response. If no value\
- \ is provided, \nthe standard http rules apply, i.e., the accept header \n\
- will be used to determine the format."
- explode: false
- in: query
- name: f
- required: false
- schema:
- enum:
- - json
- - html
- type: string
- style: form
- f-json:
- description: "(informative) \\\nThe content type of the response. If no value\
- \ is provided, \nthe standard http rules apply, i.e., the accept header \n\
- will be used to determine the format."
- explode: false
- in: query
- name: f
- required: false
- schema:
- enum:
- - json
- type: string
- style: form
- f-style:
- description: "(informative) \\\nThe content type of the response. If no value\
- \ is provided, \nthe standard http rules apply, i.e., the accept header \n\
- will be used to determine the format."
- explode: false
- in: query
- name: f
- required: false
- schema:
- enum:
- - mapbox
- - sld10
- - sld11
- type: string
- style: form
- validate:
- description: "(part of conformance class 'style-validation') \\\n'yes' creates\
- \ a new style after successful validation\nand returns 400, if validation\
- \ fails,\n’no' creates the style without validation and \n'only' just validates\
- \ the style without creating a\nnew style and returns 400, if validation fails,\n\
- otherwise 204."
- explode: false
- in: query
- name: validate
- required: false
- schema:
- enum:
- - "yes"
- - "no"
- - only
- type: string
- style: form
- styleId:
- description: "Local identifier of a style. \\\nA list of all available styles\
- \ can be found \nunder the /styles path."
- explode: false
- in: path
- name: styleId
- required: true
- schema:
- type: string
- style: simple
- resourceId:
- description: "Local identifier of a symbol resource. \\\nA list of all available\
- \ resource can be found \nunder the /resources path."
- explode: false
- in: path
- name: resourceId
- required: true
- schema:
- type: string
- style: simple
- f-metadata:
- description: "The format of the response. If no value is provided, the accept\
- \ header is used to determine the format. Accepted values are 'json' or 'html'."
- explode: false
- in: query
- name: f
- required: false
- schema:
- enum:
- - json
- - html
- type: string
- style: form
- collectionId-all:
- description: Local identifier of a collection
- explode: false
- in: path
- name: collectionId
- required: true
- schema:
- $ref: '#/components/schemas/all-collections'
- style: simple
- collectionId-coverage:
- description: Local identifier of a coverage collection
- explode: false
- in: path
- name: collectionId
- required: true
- schema:
- $ref: '#/components/schemas/coverage-collections'
- style: simple
- collectionId-vectorTiles:
- description: Local identifier of a vector tile collection
- explode: false
- in: path
- name: collectionId
- required: true
- schema:
- $ref: '#/components/schemas/vectorTiles-collections'
- style: simple
- collections:
- description: "The collections that should be included in the response. The parameter\
- \ value is a comma-separated list of collection identifiers. If the parameters\
- \ is missing, some or all collections will be included. The collection will\
- \ be rendered in the order specified, with the last one showing on top, unless\
- \ the priority is overridden by styling rules."
- explode: false
- in: query
- name: collections
- required: false
- schema:
- items:
- $ref: '#/components/schemas/all-collections'
- type: array
- style: form
- collections-coverage:
- description: "The collections that should be included in the response. The parameter\
- \ value is a comma-separated list of collection identifiers. If the parameters\
- \ is missing, some or all collections will be included. The collection will\
- \ be rendered in the order specified, with the last one showing on top, unless\
- \ the priority is overridden by styling rules."
- explode: false
- in: query
- name: collections
- required: false
- schema:
- items:
- $ref: '#/components/schemas/coverage-collections'
- type: array
- style: form
- collections-vectorTiles:
- description: "The collections that should be included in the response. The parameter\
- \ value is a comma-separated list of collection identifiers. If the parameters\
- \ is missing, some or all collections will be included. The collection will\
- \ be rendered in the order specified, with the last one showing on top, unless\
- \ the priority is overridden by styling rules."
- explode: false
- in: query
- name: collections
- required: false
- schema:
- items:
- $ref: '#/components/schemas/vectorTiles-collections'
- type: array
- style: form
- datetime:
- description: |-
- Either a date-time or an interval, half-bounded or bounded. Date and time expressions
- adhere to RFC 3339. Half-bounded intervals are expressed using double-dots.
-
- Examples:
-
- * A date-time: 2018-02-12T23:20:50Z
- * A bounded interval: 2018-02-12T00:00:00Z/2018-03-18T12:31:12Z
- * Half-bounded intervals: 2018-02-12T00:00:00Z/.. or ../2018-03-18T12:31:12Z
-
- Only features that have a temporal property that intersects the value of
- `datetime` are selected.
-
- If a feature has multiple temporal properties, it is the decision of the
- server whether only a single temporal property is used to determine
- the extent or all relevant temporal properties.
- explode: false
- in: query
- name: datetime
- required: false
- schema:
- type: string
- style: form
- subset:
- description: |
- Retrieve only part of the data by slicing or trimming along one or more axis
- For trimming: {axisAbbrev}({low}:{high}) (preserves dimensionality)
- An asterisk (`*`) can be used instead of {low} or {high} to indicate the minimum/maximum value.
- For slicing: {axisAbbrev}({value}) (reduces dimensionality)
- explode: false
- in: query
- name: subset
- required: false
- schema:
- items:
- type: string
- type: array
- style: form
- crs:
- description: reproject the output to the given crs
- explode: true
- in: query
- name: crs
- required: false
- schema:
- type: string
- style: form
- subset-crs:
- description: crs for the specified subset
- explode: true
- in: query
- name: subset-crs
- required: false
- schema:
- type: string
- style: form
- tileMatrix:
- description: |-
- Identifier selecting one of the scales defined in the TileMatrixSet and representing the scaleDenominator the tile. For example,
- Ireland is fully within the Tile at WebMercatorQuad tileMatrix=5, tileRow=10 and tileCol=15.
- explode: false
- in: path
- name: tileMatrix
- required: true
- schema:
- type: string
- style: simple
- tileRow:
- description: "Row index of the tile on the selected TileMatrix. It cannot exceed\
- \ the MatrixWidth-1 for the selected TileMatrix. For example, Ireland is fully\
- \ within the Tile at WebMercatorQuad tileMatrix=5, tileRow=10 and tileCol=15."
- explode: false
- in: path
- name: tileRow
- required: true
- schema:
- minimum: 0
- type: integer
- style: simple
- tileCol:
- description: "Column index of the tile on the selected TileMatrix. It cannot\
- \ exceed the MatrixHeight-1 for the selected TileMatrix. For example, Ireland\
- \ is fully within the Tile at WebMercatorQuad tileMatrix=5, tileRow=10 and\
- \ tileCol=15."
- explode: false
- in: path
- name: tileCol
- required: true
- schema:
- minimum: 0
- type: integer
- style: simple
- tileSetId:
- description: Identifier for a supported TileMatrixSet
- explode: false
- in: path
- name: tileSetId
- required: true
- schema:
- $ref: '#/components/schemas/tileMatrixSets'
- style: simple
- f-mapTile:
- description: "The format of the map tile response (e.g. png). Accepted values\
- \ are 'png', 'jpg' or 'tiff' (GeoTIFF)."
- explode: false
- in: query
- name: f
- required: false
- schema:
- enum:
- - png
- - jpg
- - tiff
- type: string
- style: form
- f-vectorTile:
- description: The format of the vector tile response (e.g. json). Accepted values
- are 'mvt' (Mapbox Vector Tiles) or 'json' (GeoJSON).
- explode: false
- in: query
- name: f
- required: false
- schema:
- enum:
- - mvt
- - json
- type: string
- style: form
- f-coverageTile:
- description: "The format of the coverage tile response (e.g. tiff). Accepted\
- \ values are 'tiff' (GeoTIFF), 'netcdf', or 'png'."
- explode: false
- in: query
- name: f
- required: false
- schema:
- enum:
- - tiff
- - netcdf
- - png
- type: string
- style: form
- bgcolor:
- description: "Web color name or hexadecimal 0x[AA]RRGGBB color value for the\
- \ background color (default to 0x9C9C9C gray). If alpha is not specified,\
- \ full opacity is assumed."
- explode: false
- in: query
- name: bgcolor
- required: false
- schema:
- default: "16777215"
- type: string
- style: form
- transparent:
- description: Background transparency of map (default=true).
- explode: false
- in: query
- name: transparent
- required: false
- schema:
- default: true
- type: boolean
- style: form
- styleId-collection:
- description: An identifier representing a specific style.
- explode: false
- in: path
- name: styleId
- required: true
- schema:
- type: string
- style: simple
- bbox:
- description: |-
- Only features that have a geometry that intersects the bounding box are selected. The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or depth):
- * Lower left corner, coordinate axis 1 * Lower left corner, coordinate axis 2 * Minimum value, coordinate axis 3 (optional) * Upper right corner, coordinate axis 1 * Upper right corner, coordinate axis 2 * Maximum value, coordinate axis 3 (optional)
- The coordinate reference system of the values is WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84) unless a different coordinate reference system is specified in the parameter `bbox-crs`.
- For WGS 84 longitude/latitude the values are in most cases the sequence of minimum longitude, minimum latitude, maximum longitude and maximum latitude. However, in cases where the box spans the antimeridian the first value (west-most box edge) is larger than the third value (east-most box edge).
- If the vertical axis is included, the third and the sixth number are the bottom and the top of the 3-dimensional bounding box.
- If a feature has multiple spatial geometry properties, it is the decision of the server whether only a single spatial geometry property is used to determine the extent or all relevant geometries.
- explode: false
- in: query
- name: bbox
- required: false
- schema:
- $ref: '#/components/schemas/getCollectionsList_bbox_parameter'
- style: form
- limit-collections:
- description: |-
- The optional limit parameter limits the number of collections that are presented in the response document.
- Only items are counted that are on the first level of the collection in the response document. Nested objects contained within the explicitly requested items shall not be counted.
- * Minimum = 1 * Maximum = 10000 * Default = 10
- explode: false
- in: query
- name: limit
- required: false
- schema:
- default: 10
- maximum: 10000
- minimum: 1
- type: integer
- style: form
- responses:
- NotFound:
- $ref: '#/components/responses/rNotFound'
- NotAcceptable:
- $ref: '#/components/responses/rNotAcceptable'
- ServerError:
- $ref: '#/components/responses/rServerError'
- InvalidParameter:
- $ref: '#/components/responses/rInvalidParameter'
- Exception:
- $ref: '#/components/responses/rException'
- LandingPage:
- $ref: '#/components/responses/rLandingPage'
- Conformance:
- $ref: '#/components/responses/rConformance'
- API:
- $ref: '#/components/responses/rAPI'
- Enumeration:
- $ref: '#/components/responses/rEnumeration'
- CollectionsList:
- $ref: '#/components/responses/rCollectionsList'
- Collection:
- $ref: '#/components/responses/rCollection'
- Created:
- description: Resource created.
- headers:
- Location:
- $ref: '#/components/headers/Location'
- Updated:
- description: The resource has been updated.
- UnauthorizedAccess:
- description: Unauthorized access.
- TileSetsList:
- $ref: '#/components/responses/rTileSetsList'
- TileSet:
- $ref: '#/components/responses/rTileSet'
- MapTile:
- $ref: '#/components/responses/rMapTile'
- CoverageTile:
- $ref: '#/components/responses/rCoverageTile'
- VectorTile:
- $ref: '#/components/responses/rVectorTile'
- EmptyTile:
- $ref: '#/components/responses/rEmptyTile'
- TileMatrixSetsList:
- $ref: '#/components/responses/rTileMatrixSetsList'
- TileMatrixSet:
- $ref: '#/components/responses/rTileMatrixSet'
- rLandingPage:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/landingPage'
- description: |-
- The landing page provides links to the API definition (link relation `service-desc`, in this case path `/api`),
- to the Conformance declaration (path `/conformance`, link relation `conformance`), and to the Collections of geospatial data (path `/collections`, link relation `data`).
- rNotAcceptable:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/exception'
- description: "Content negotiation failed. For example, the `Accept` header submitted\
- \ in the request did not support any of the media types supported by the server\
- \ for the requested resource."
- rServerError:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/exception'
- description: A server error occurred.
- rConformance:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/getConformance_200_response'
- description: The URIs of all conformance classes supported by the server
- rAPI:
- content:
- application/vnd.oai.openapi+json;version=3.0:
- schema:
- type: object
- description: The OpenAPI definition of the API.
- rEnumeration:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/enumeration'
- text/html:
- schema:
- type: string
- description: An enumerated list of valid string values for API parameters.
- rNotFound:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/exception'
- text/html:
- schema:
- type: string
- description: "The requested resource does not exist on the server. For example,\
- \ a path parameter had an incorrect value."
- rCollectionsList:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/collections'
- text/html:
- schema:
- type: string
- description: |-
- The collections of (mostly geospatial) data available from this API. The dataset contains one or more collections. This resource provides information about and access to the collections. The response contains the list of collections. Each collection is accessible via one or more OGC API set of specifications, for which a link to relevant accessible resources, e.g. /collections/{collectionId}/(items, coverage, map, tiles...) is provided, with the corresponding relation type, as well as key information about the collection. This information includes:
- * a local identifier for the collection that is unique for the dataset;
- * a list of coordinate reference systems (CRS) in which data may be returned by the server. The first CRS is the default coordinate reference system (the default is always WGS 84 with axis order longitude/latitude);
- * an optional title and description for the collection;
- * an optional extent that can be used to provide an indication of the spatial and temporal extent of the collection - typically derived from the data;
- * for collections accessible via the Features or Records API, an optional indicator about the type of the items in the collection (the default value, if the indicator is not provided, is 'feature').
- rCollection:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/collection'
- description: |-
- Information about a particular collection of (mostly geospatial) data available from this API. The collection is accessible via one or more OGC API set of specifications, for which a link to relevant accessible resources, e.g. /collections/{collectionId}/(items, coverage, map, tiles...) is contained in the response, with the corresponding relation type, as well as key information about the collection. This information includes:
- * a local identifier for the collection that is unique for the dataset;
- * a list of coordinate reference systems (CRS) in which data may be returned by the server. The first CRS is the default coordinate reference system (the default is always WGS 84 with axis order longitude/latitude);
- * an optional title and description for the collection;
- * an optional extent that can be used to provide an indication of the spatial and temporal extent of the collection - typically derived from the data;
- * for collections accessible via the Features or Records API, an optional indicator about the type of the items in the collection (the default value, if the indicator is not provided, is 'feature').
- rTileMatrixSetsList:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/getTileMatrixSetsList_200_response'
- description: List of tile matrix sets (tiling schemes).
- rTileMatrixSet:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/tileMatrixSet'
- description: tile matrix set
- rTileSetsList:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/tileSets'
- description: List of available tileSets.
- rTileSet:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/tileSet'
- description: Description of the tileSet
- rVectorTile:
- content:
- application/vnd.mapbox-vector-tile:
- schema:
- format: binary
- type: string
- description: A vector tile returned as a response.
- rEmptyTile:
- description: No data available for this tile.
- rCoverageTile:
- content:
- application/netcdf:
- schema:
- format: binary
- type: string
- image/tiff; application=geotiff:
- schema:
- format: binary
- type: string
- description: A coverage tile returned as a response.
- rMapTile:
- content:
- image/png:
- schema:
- format: binary
- type: string
- image/jpeg:
- schema:
- format: binary
- type: string
- image/tiff; application=geotiff:
- schema:
- format: binary
- type: string
- description: A map tile image returned as a response.
- rInvalidParameter:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/exception'
- description: A query parameter has an invalid value.
- rException:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/exception'
- description: An error occured.
- schemas:
- style-set:
- properties:
- styles:
- items:
- $ref: '#/components/schemas/style-set-entry'
- nullable: true
- type: array
- required:
- - styles
- type: object
- style-set-entry:
- nullable: true
- properties:
- id:
- nullable: true
- type: string
- title:
- nullable: true
- type: string
- links:
- items:
- $ref: '#/components/schemas/link_1'
- minItems: 1
- nullable: true
- type: array
- required:
- - id
- - links
- type: object
- mb-style:
- properties:
- version:
- type: number
- name:
- type: string
- sources:
- $ref: '#/components/schemas/mb_style_sources'
- sprite:
- type: string
- glyphs:
- type: string
- layers:
- items:
- $ref: '#/components/schemas/layers-array'
- type: array
- required:
- - layers
- - sources
- - version
- type: object
- layers-array:
- properties:
- id:
- type: string
- type:
- enum:
- - fill
- - line
- - symbol
- - circle
- - heatmap
- - fill-extrusion
- - raster
- - hillshade
- - background
- type: string
- source:
- type: string
- source-layer:
- type: string
- layout:
- type: object
- paint:
- $ref: '#/components/schemas/layers_array_paint'
- required:
- - id
- - type
- type: object
- mb-sprite-index:
- additionalProperties:
- $ref: '#/components/schemas/mb-sprite-index-symbol'
- type: object
- mb-sprite-index-symbol:
- properties:
- width:
- type: integer
- height:
- type: integer
- x:
- type: integer
- "y":
- type: integer
- pixelRatio:
- type: number
- required:
- - height
- - pixelRatio
- - width
- - x
- - "y"
- type: object
- svg:
- type: string
- bitmap:
- format: binary
- type: string
- resource-set:
- properties:
- resources:
- items:
- $ref: '#/components/schemas/resource-set-entry'
- type: array
- required:
- - resources
- type: object
- resource-set-entry:
- properties:
- id:
- type: string
- link:
- $ref: '#/components/schemas/link_1'
- required:
- - id
- type: object
- style-metadata:
- properties:
- id:
- type: string
- title:
- nullable: true
- type: string
- description:
- nullable: true
- type: string
- keywords:
- items:
- type: string
- nullable: true
- type: array
- pointOfContact:
- nullable: true
- type: string
- accessConstraints:
- enum:
- - unclassified
- - confidential
- - restricted
- - secret
- - topSecret
- nullable: true
- type: string
- dates:
- $ref: '#/components/schemas/dates'
- scope:
- enum:
- - style
- nullable: true
- type: string
- version:
- nullable: true
- type: string
- stylesheets:
- items:
- $ref: '#/components/schemas/stylesheet'
- nullable: true
- type: array
- layers:
- items:
- $ref: '#/components/schemas/style-layer'
- nullable: true
- type: array
- links:
- description: |-
- The links may reference related resources. It is recommended to include
- a link to a thumbnail with link relation `preview` (specified by RFC 6903)
- and the appropriate media type in the `type` parameter.
- The thumbnail may be an image that is published as a resource in the API,
- it may reference an appropriate raster tile, a map request, etc.
- items:
- $ref: '#/components/schemas/link_1'
- nullable: true
- type: array
- required:
- - id
- type: object
- dates:
- nullable: true
- properties:
- creation:
- format: date-time
- nullable: true
- type: string
- publication:
- format: date-time
- nullable: true
- type: string
- revision:
- format: date-time
- nullable: true
- type: string
- validTill:
- format: date-time
- nullable: true
- type: string
- receivedOn:
- format: date-time
- nullable: true
- type: string
- type: object
- stylesheet:
- nullable: true
- properties:
- title:
- nullable: true
- type: string
- version:
- nullable: true
- type: string
- specification:
- format: url
- nullable: true
- type: string
- native:
- nullable: true
- type: boolean
- tilingScheme:
- nullable: true
- type: string
- link:
- $ref: '#/components/schemas/link_1'
- required:
- - link
- type: object
- style-layer:
- nullable: true
- properties:
- id:
- type: string
- description:
- nullable: true
- type: string
- type:
- enum:
- - point
- - line
- - polygon
- - geometry
- - raster
- nullable: true
- type: string
- sampleData:
- $ref: '#/components/schemas/link'
- required:
- - id
- type: object
- conformanceClasses:
- properties:
- conformsTo:
- items:
- type: string
- type: array
- required:
- - conformsTo
- type: object
- link:
- properties:
- href:
- description: Supplies the URI to a remote resource (or resource fragment).
- type: string
- rel:
- description: The type or semantics of the relation.
- type: string
- type:
- description: A hint indicating what the media type of the result of dereferencing
- the link should be.
- type: string
- templated:
- description: This flag set to true if the link is a URL template.
- type: boolean
- varBase:
- description: A base path to retrieve semantic information about the variables
- used in URL template.
- type: string
- hreflang:
- description: A hint indicating what the language of the result of dereferencing
- the link should be.
- type: string
- title:
- description: Used to label the destination of a link such that it can be
- used as a human-readable identifier.
- type: string
- length:
- type: integer
- required:
- - href
- - rel
- type: object
- landingPage:
- properties:
- title:
- description: "While a title is not required, implementors are strongly advised\
- \ to include one."
- title: The title of the API.
- type: string
- description:
- type: string
- attribution:
- description: "The `attribution` should be short and intended for presentation\
- \ to a user, for example, in a corner of a map. Parts of the text can\
- \ be links to other resources if additional information is needed. The\
- \ string can include HTML markup."
- title: attribution for the API
- type: string
- links:
- items:
- $ref: '#/components/schemas/link'
- type: array
- required:
- - links
- type: object
- exception:
- description: JSON schema for exceptions based on RFC 7807
- properties:
- type:
- type: string
- title:
- type: string
- status:
- type: integer
- detail:
- type: string
- instance:
- type: string
- required:
- - type
- title: Exception Schema
- type: object
- collections:
- properties:
- links:
- items:
- $ref: '#/components/schemas/link'
- type: array
- timeStamp:
- format: date-time
- type: string
- numberMatched:
- minimum: 0
- type: integer
- numberReturned:
- minimum: 0
- type: integer
- collections:
- items:
- $ref: '#/components/schemas/collection'
- type: array
- required:
- - collections
- - links
- type: object
- collection:
- properties:
- id:
- description: "identifier of the collection used, for example, in URIs"
- type: string
- title:
- description: human readable title of the collection
- type: string
- description:
- description: a description of the data in the collection
- type: string
- links:
- items:
- $ref: '#/components/schemas/link'
- type: array
- extent:
- $ref: '#/components/schemas/extent-uad'
- itemType:
- default: unknown
- description: "indicator about the type of the items in the collection if\
- \ the collection has an accessible /collections/{collectionId}/items endpoint"
- type: string
- crs:
- default:
- - http://www.opengis.net/def/crs/OGC/1.3/CRS84
- description: the list of coordinate reference systems supported by the API;
- the first item is the default coordinate reference system
- items:
- type: string
- type: array
- dataType:
- $ref: '#/components/schemas/collectionInfo_dataType'
- geometryDimension:
- description: "The geometry dimension of the features shown in this layer\
- \ (0: points, 1: curves, 2: surfaces, 3: solids), unspecified: mixed or\
- \ unknown"
- maximum: 3
- minimum: 0
- type: integer
- minScaleDenominator:
- description: Minimum scale denominator for usage of the collection
- type: number
- maxScaleDenominator:
- description: Maximum scale denominator for usage of the collection
- type: number
- minCellSize:
- description: Minimum cell size for usage of the collection
- type: number
- maxCellSize:
- description: Maximum cell size for usage of the collection
- type: number
- required:
- - id
- - links
- type: object
- extent:
- description: |-
- The extent of the data in the collection. In the Core only spatial and temporal
- extents are specified. Extensions may add additional members to represent other
- extents, for example, thermal or pressure ranges.
-
- The first item in the array describes the overall extent of
- the data. All subsequent items describe more precise extents,
- e.g., to identify clusters of data.
- Clients only interested in the overall extent will only need to
- access the first item in each array.
- properties:
- spatial:
- $ref: '#/components/schemas/extent_spatial'
- temporal:
- $ref: '#/components/schemas/extent_temporal'
- type: object
- extent-uad:
- allOf:
- - $ref: '#/components/schemas/extent'
- - additionalProperties:
- description: The domain intervals for any additional dimensions of the extent
- (envelope) beyond those described in temporal and spatial.
- properties:
- interval:
- description: |-
- One or more intervals that describe the extent for this dimension of the dataset.
- The value `null` is supported and indicates an unbounded or half-bounded interval.
- The first interval describes the overall extent of the data for this dimension.
- All subsequent intervals describe more precise intervals, e.g., to identify clusters of data.
- Clients only interested in the overall extent will only need
- to access the first item (a pair of lower and upper bound values).
- items:
- description: |-
- Lower and upper bound values of the interval. The values
- are in the coordinate reference system specified in `crs`, `trs` or `vrs`.
- items:
- oneOf:
- - nullable: true
- type: string
- - type: number
- maxItems: 2
- minItems: 2
- type: array
- minItems: 1
- type: array
- crs:
- description: generic coordinate reference system suitable for any type
- of dimensions
- type: string
- trs:
- description: temporal coordinate reference system (e.g. as defined by
- Features for 'temporal')
- type: string
- vrs:
- description: vertical coordinate reference system (e.g. as defined in
- EDR for 'vertical')
- type: string
- grid:
- description: Provides information about the limited availability of
- data within the collection organized as a grid (regular or irregular)
- along the dimension.
- properties:
- coordinates:
- description: |-
- List of coordinates along the temporal dimension for which data organized as an irregular grid in the collection is available
- (e.g., 2, 10, 80, 100).
- items:
- oneOf:
- - nullable: true
- type: string
- - type: number
- minItems: 1
- type: array
- cellsCount:
- description: |-
- Number of samples available along the dimension for data organized as a regular grid.
- For values representing the whole area of contiguous cells spanning _resolution_ units along the dimension, this will be (_upperBound_ - _lowerBound_) / _resolution_.
- For values representing infinitely small point cells spaced by _resolution_ units along the dimension, this will be (_upperBound_ - _lowerBound_) / _resolution_ + 1.
- type: integer
- resolution:
- description: Resolution of regularly gridded data along the dimension
- in the collection
- oneOf:
- - nullable: true
- type: string
- - type: number
- type: object
- type: object
- type: object
- description: |-
- The extent module only addresses spatial and temporal extents. This module extends extent by specifying how
- intervals and crs properties can be used to specify additional geometries.
- title: Extent with Uniform Additional Dimensions Schema
- crs:
- oneOf:
- - description: Simplification of the object into a url if the other properties
- are not present
- type: string
- - $ref: '#/components/schemas/crs_oneOf'
- title: CRS
- dataType:
- anyOf:
- - type: string
- - enum:
- - map
- - vector
- - coverage
- type: string
- timeStamp:
- description: This property indicates the time and date when the response was
- generated using RFC 3339 notation.
- format: date-time
- type: string
- numberReturned:
- description: |-
- The number of features in the feature collection.
- A server may omit this information in a response, if the information
- about the number of features is not known or difficult to compute.
- If the value is provided, the value shall be identical to the number
- of items in the "features" array.
- minimum: 0
- type: integer
- numberMatched:
- description: |-
- The number of features of the feature type that match the selection
- parameters like `bbox`.
- minimum: 0
- type: integer
- tileSet:
- description: "A resource describing a tileSet based on the OGC TileSet Metadata\
- \ Standard. At least one of the 'TileMatrixSet', or a link with 'rel' http://www.opengis.net/def/rel/ogc/1.0/tiling-scheme"
- properties:
- title:
- description: A title for this tileSet
- type: string
- description:
- description: Brief narrative description of this tile set
- type: string
- dataType:
- $ref: '#/components/schemas/tileSet_dataType'
- crs:
- $ref: '#/components/schemas/tileSet_crs'
- tileMatrixSetURI:
- description: Reference to a Tile Matrix Set on an offical source for Tile
- Matrix Sets such as the OGC NA definition server (http://www.opengis.net/def/tms/).
- Required if the tile matrix set is registered on an open official source.
- format: uri
- type: string
- links:
- description: "Links to related resources. Possible link 'rel' values are:\
- \ 'http://www.opengis.net/def/rel/ogc/1.0/dataset' for a URL pointing\
- \ to the dataset, 'item' for a URL template to get a tile; 'alternate'\
- \ for a URL pointing to another representation of the TileSetMetadata\
- \ (e.g a TileJSON file); 'http://www.opengis.net/def/rel/ogc/1.0/tiling-scheme'\
- \ for a definition of the TileMatrixSet; 'http://www.opengis.net/def/rel/ogc/1.0/geodata'\
- \ for pointing to a single collection (if the tileSet represents a single\
- \ collection)"
- items:
- $ref: '#/components/schemas/link'
- type: array
- tileMatrixSetLimits:
- description: "Limits for the TileRow and TileCol values for each TileMatrix\
- \ in the tileMatrixSet. If missing, there are no limits other that the\
- \ ones imposed by the TileMatrixSet. If present the TileMatrices listed\
- \ are limited and the rest not available at all"
- items:
- $ref: '#/components/schemas/tileMatrixLimits'
- type: array
- epoch:
- description: Epoch of the Coordinate Reference System (CRS)
- type: number
- layers:
- items:
- $ref: '#/components/schemas/geospatialData'
- minItems: 1
- type: array
- boundingBox:
- $ref: '#/components/schemas/tileSet_boundingBox'
- centerPoint:
- $ref: '#/components/schemas/tileSet_centerPoint'
- style:
- $ref: '#/components/schemas/tileSet_style'
- attribution:
- description: Short reference to recognize the author or provider
- type: string
- license:
- description: License applicable to the tiles
- type: string
- accessConstraints:
- default: unclassified
- description: Restrictions on the availability of the Tile Set that the user
- needs to be aware of before using or redistributing the Tile Set
- enum:
- - unclassified
- - restricted
- - confidential
- - secret
- - topSecret
- type: string
- keywords:
- description: keywords about this tileSet
- items:
- type: string
- type: array
- version:
- description: Version of the Tile Set. Changes if the data behind the tiles
- has been changed
- type: string
- created:
- allOf:
- - description: When the Tile Set was first produced
- type: object
- - $ref: '#/components/schemas/timeStamp'
- updated:
- allOf:
- - description: Last Tile Set change/revision
- type: object
- - $ref: '#/components/schemas/timeStamp'
- pointOfContact:
- description: Useful information to contact the authors or custodians for
- the Tile Set
- type: string
- mediaTypes:
- description: Media types available for the tiles
- items:
- type: string
- type: array
- required:
- - crs
- - dataType
- - links
- title: Tile Set Metadata
- type: object
- tileSet-item:
- description: A minimal tileSet element for use within a list of tileSets linking
- to full description of those tileSets.
- properties:
- title:
- description: A title for this tileSet
- type: string
- dataType:
- $ref: '#/components/schemas/tileSet_dataType'
- crs:
- $ref: '#/components/schemas/tileSet_crs'
- tileMatrixSetURI:
- description: Reference to a Tile Matrix Set on an offical source for Tile
- Matrix Sets such as the OGC NA definition server (http://www.opengis.net/def/tms/).
- Required if the tile matrix set is registered on an open official source.
- format: uri
- type: string
- links:
- description: Links to related resources. A 'self' link to the tileSet as
- well as a 'http://www.opengis.net/def/rel/ogc/1.0/tiling-scheme' link
- to a definition of the TileMatrixSet are required.
- items:
- $ref: '#/components/schemas/link'
- type: array
- required:
- - crs
- - dataType
- - links
- title: Tile Set Metadata item
- type: object
- tileMatrixSet:
- description: "A definition of a tile matrix set following the Tile Matrix Set\
- \ standard. For tileSet metadata, such a description (in `tileMatrixSet` property)\
- \ is only required for offline use, as an alternative to a link with a `http://www.opengis.net/def/rel/ogc/1.0/tiling-scheme`\
- \ relation type."
- properties:
- title:
- description: "Title of this tile matrix set, normally used for display to\
- \ a human"
- type: string
- description:
- description: "Brief narrative description of this tile matrix set, normally\
- \ available for display to a human"
- type: string
- keywords:
- description: Unordered list of one or more commonly used or formalized word(s)
- or phrase(s) used to describe this tile matrix set
- items:
- type: string
- type: array
- id:
- description: Tile matrix set identifier. Implementation of 'identifier'
- type: string
- uri:
- description: Reference to an official source for this tileMatrixSet
- format: uri
- type: string
- orderedAxes:
- items:
- type: string
- minItems: 1
- type: array
- crs:
- $ref: '#/components/schemas/tileSet_crs'
- wellKnownScaleSet:
- description: Reference to a well-known scale set
- format: uri
- type: string
- boundingBox:
- $ref: '#/components/schemas/tileSet_boundingBox'
- tileMatrices:
- description: Describes scale levels and its tile matrices
- items:
- $ref: '#/components/schemas/tileMatrix'
- type: array
- required:
- - crs
- - tileMatrices
- title: Tile Matrix Set Definition
- type: object
- tileMatrixSet-item:
- description: A minimal tile matrix set element for use within a list of tile
- matrix sets linking to a full definition.
- properties:
- id:
- description: "Optional local tile matrix set identifier, e.g. for use as\
- \ unspecified `{tileSetId}` parameter. Implementation of 'identifier'"
- type: string
- title:
- description: "Title of this tile matrix set, normally used for display to\
- \ a human"
- type: string
- uri:
- description: Reference to an official source for this tileMatrixSet
- format: uri
- type: string
- crs:
- $ref: '#/components/schemas/tileSet_crs'
- links:
- description: Links to related resources. A 'self' link to the tile matrix
- set definition is required.
- items:
- $ref: '#/components/schemas/link'
- type: array
- required:
- - links
- title: Tile Matrix Set Item
- type: object
- tileMatrixLimits:
- description: "The limits for an individual tile matrix of a TileSet's TileMatrixSet,\
- \ as defined in the OGC 2D TileMatrixSet and TileSet Metadata Standard"
- properties:
- tileMatrix:
- type: string
- minTileRow:
- minimum: 0
- type: integer
- maxTileRow:
- minimum: 0
- type: integer
- minTileCol:
- minimum: 0
- type: integer
- maxTileCol:
- minimum: 0
- type: integer
- required:
- - maxTileCol
- - maxTileRow
- - minTileCol
- - minTileRow
- - tileMatrix
- title: TileMatrixLimits
- type: object
- "Point2D":
- description: A 2D Point in the CRS indicated elsewhere
- items:
- type: number
- maxItems: 2
- minItems: 2
- type: array
- "BoundingBox2D":
- description: Minimum bounding rectangle surrounding a 2D resource in the CRS
- indicated elsewhere
- properties:
- lowerLeft:
- description: A 2D Point in the CRS indicated elsewhere
- items:
- type: number
- maxItems: 2
- minItems: 2
- type: array
- upperRight:
- description: A 2D Point in the CRS indicated elsewhere
- items:
- type: number
- maxItems: 2
- minItems: 2
- type: array
- crs:
- $ref: '#/components/schemas/crs'
- orderedAxes:
- items:
- type: string
- maxItems: 2
- minItems: 2
- type: array
- required:
- - lowerLeft
- - upperRight
- type: object
- FeatureCollection:
- properties:
- type:
- enum:
- - FeatureCollection
- type: string
- features:
- items:
- $ref: '#/components/schemas/GeoJSON_Feature'
- type: array
- bbox:
- items:
- type: number
- minItems: 4
- type: array
- required:
- - features
- - type
- title: GeoJSON FeatureCollection
- type: object
- enumeration:
- properties:
- type:
- enum:
- - enum
- type: string
- enum:
- items:
- type: string
- type: array
- required:
- - enum
- - type
- type: object
- all-collections:
- enum:
- - blueMarble
- - NaturalEarth:raster:HYP_HR_SR_OB_DR
- - NaturalEarth:cultural:ne_10m_admin_0_countries
- - NaturalEarth:physical:bathymetry
- - SRTM_ViewFinderPanorama
- - HRDEM-Ottawa
- - HRDEM-RedRiver
- type: string
- vectorTiles-collections:
- enum:
- - NaturalEarth:cultural:ne_10m_admin_0_countries
- - NaturalEarth:physical:bathymetry
- type: string
- coverage-collections:
- enum:
- - SRTM_ViewFinderPanorama
- - HRDEM-Ottawa
- - HRDEM-RedRiver
- type: string
- styles:
- enum:
- - default
- type: string
- tileMatrixSets:
- enum:
- - WebMercatorQuad
- - WorldCRS84Quad
- - GNOSISGlobalGrid
- - WorldMercatorWGS84Quad
- type: string
- geospatialData:
- properties:
- title:
- description: "Title of this tile matrix set, normally used for display to\
- \ a human"
- type: string
- description:
- description: "Brief narrative description of this tile matrix set, normally\
- \ available for display to a human"
- type: string
- keywords:
- description: Unordered list of one or more commonly used or formalized word(s)
- or phrase(s) used to describe this layer
- type: string
- id:
- description: Unique identifier of the Layer. Implementation of 'identifier'
- type: string
- dataType:
- $ref: '#/components/schemas/geospatialData_dataType'
- geometryDimension:
- description: "The geometry dimension of the features shown in this layer\
- \ (0: points, 1: curves, 2: surfaces, 3: solids), unspecified: mixed or\
- \ unknown"
- maximum: 3
- minimum: 0
- type: integer
- featureType:
- description: Feature type identifier. Only applicable to layers of datatype
- 'geometries'
- type: string
- attribution:
- description: Short reference to recognize the author or provider
- type: string
- license:
- description: License applicable to the tiles
- type: string
- pointOfContact:
- description: "Useful information to contact the authors or custodians for\
- \ the layer (e.g. e-mail address, a physical address, phone numbers,\
- \ etc)"
- type: string
- publisher:
- description: Organization or individual responsible for making the layer
- available
- type: string
- theme:
- description: Category where the layer can be grouped
- type: string
- crs:
- $ref: '#/components/schemas/tileSet_crs'
- epoch:
- description: Epoch of the Coordinate Reference System (CRS)
- type: number
- minScaleDenominator:
- description: Minimum scale denominator for usage of the layer
- type: number
- maxScaleDenominator:
- description: Maximum scale denominator for usage of the layer
- type: number
- minCellSize:
- description: Minimum cell size for usage of the layer
- type: number
- maxCellSize:
- description: Maximum cell size for usage of the layer
- type: number
- maxTileMatrix:
- description: TileMatrix identifier associated with the minScaleDenominator
- type: string
- minTileMatrix:
- description: TileMatrix identifier associated with the maxScaleDenominator
- type: string
- boundingBox:
- $ref: '#/components/schemas/geospatialData_boundingBox'
- created:
- allOf:
- - description: When the layer was first produced
- type: object
- - $ref: '#/components/schemas/timeStamp'
- updated:
- allOf:
- - description: Last layer change/revision
- type: object
- - $ref: '#/components/schemas/timeStamp'
- style:
- $ref: '#/components/schemas/geospatialData_style'
- geoDataClasses:
- description: URI identifying a class of data contained in this layer (useful
- to determine compatibility with styles or processes)
- items:
- type: string
- type: array
- propertiesSchema:
- $ref: '#/components/schemas/geospatialData_propertiesSchema'
- links:
- description: "Links related to this layer. Possible link 'rel' values are:\
- \ 'geodata' for a URL pointing to the collection of geospatial data."
- items:
- $ref: '#/components/schemas/link'
- minItems: 1
- type: array
- required:
- - dataType
- - id
- type: object
- tilePoint:
- properties:
- coordinates:
- items:
- type: number
- maxItems: 2
- minItems: 2
- type: array
- crs:
- $ref: '#/components/schemas/tilePoint_crs'
- tileMatrix:
- description: TileMatrix identifier associated with the scaleDenominator
- type: string
- scaleDenominator:
- description: Scale denominator of the tile matrix selected
- type: number
- cellSize:
- description: Cell size of the tile matrix selected
- type: number
- required:
- - coordinates
- type: object
- style:
- properties:
- id:
- description: An identifier for this style. Implementation of 'identifier'
- type: string
- title:
- description: A title for this style
- type: string
- description:
- description: Brief narrative description of this style
- type: string
- keywords:
- description: keywords about this style
- items:
- type: string
- type: array
- links:
- description: "Links to style related resources. Possible link 'rel' values\
- \ are: 'style' for a URL pointing to the style description, 'styleSpec'\
- \ for a URL pointing to the specification or standard used to define the\
- \ style."
- items:
- $ref: '#/components/schemas/link'
- minItems: 1
- type: array
- required:
- - id
- type: object
- tileMatrix:
- description: "A tile matrix, usually corresponding to a particular zoom level\
- \ of a TileMatrixSet."
- properties:
- title:
- description: "Title of this tile matrix, normally used for display to a\
- \ human"
- type: string
- description:
- description: "Brief narrative description of this tile matrix set, normally\
- \ available for display to a human"
- type: string
- keywords:
- description: Unordered list of one or more commonly used or formalized word(s)
- or phrase(s) used to describe this dataset
- items:
- type: string
- type: array
- id:
- description: Identifier selecting one of the scales defined in the TileMatrixSet
- and representing the scaleDenominator the tile. Implementation of 'identifier'
- type: string
- scaleDenominator:
- description: Scale denominator of this tile matrix
- type: number
- cellSize:
- description: Cell size of this tile matrix
- type: number
- cornerOfOrigin:
- default: topLeft
- description: "The corner of the tile matrix (_topLeft_ or _bottomLeft_)\
- \ used as the origin for numbering tile rows and columns. This corner\
- \ is also a corner of the (0, 0) tile."
- enum:
- - topLeft
- - bottomLeft
- type: string
- pointOfOrigin:
- allOf:
- - description: "Precise position in CRS coordinates of the corner of origin\
- \ (e.g. the top-left corner) for this tile matrix. This position is\
- \ also a corner of the (0, 0) tile. In previous version, this was 'topLeftCorner'\
- \ and 'cornerOfOrigin' did not exist."
- type: object
- - $ref: '#/components/schemas/Point2D'
- tileWidth:
- description: Width of each tile of this tile matrix in pixels
- format: integer
- minimum: 1
- multipleOf: 1
- type: number
- tileHeight:
- description: Height of each tile of this tile matrix in pixels
- format: integer
- minimum: 1
- multipleOf: 1
- type: number
- matrixHeight:
- description: Width of the matrix (number of tiles in width)
- format: integer
- minimum: 1
- multipleOf: 1
- type: number
- matrixWidth:
- description: Height of the matrix (number of tiles in height)
- format: integer
- minimum: 1
- multipleOf: 1
- type: number
- variableMatrixWidths:
- description: Describes the rows that has variable matrix width
- items:
- $ref: '#/components/schemas/variableMatrixWidth'
- type: array
- required:
- - cellSize
- - id
- - matrixHeight
- - matrixWidth
- - pointOfOrigin
- - scaleDenominator
- - tileHeight
- - tileWidth
- type: object
- propertiesSchema:
- description: Attributes of the features or rangetypes of a coverage. Defined
- by a subset of the JSON Schema for the properties of a feature
- properties:
- type:
- enum:
- - object
- type: string
- required:
- description: Implements 'multiplicity' by citing property 'name' defined
- as 'additionalProperties'
- items:
- type: string
- minItems: 1
- type: array
- properties:
- additionalProperties:
- $ref: '#/components/schemas/propertiesSchema_properties_value'
- default: {}
- type: object
- required:
- - properties
- - type
- type: object
- variableMatrixWidth:
- description: Variable Matrix Width data structure
- properties:
- coalesce:
- description: Number of tiles in width that coalesce in a single tile for
- these rows
- format: integer
- minimum: 2
- multipleOf: 1
- type: number
- minTileRow:
- description: First tile row where the coalescence factor applies for this
- tilematrix
- format: integer
- minimum: 0
- multipleOf: 1
- type: number
- maxTileRow:
- description: Last tile row where the coalescence factor applies for this
- tilematrix
- format: integer
- minimum: 0
- multipleOf: 1
- type: number
- required:
- - coalesce
- - maxTileRow
- - minTileRow
- type: object
- getConformance_200_response:
- allOf:
- - $ref: '#/components/schemas/conformanceClasses'
- getCollectionsList_bbox_parameter:
- items:
- format: double
- type: number
- type: array
- getTileMatrixSetsList_200_response:
- properties:
- tileMatrixSets:
- items:
- $ref: '#/components/schemas/tileMatrixSet-item'
- type: array
- type: object
- tileSets:
- properties:
- links:
- items:
- $ref: '#/components/schemas/link'
- type: array
- tileSets:
- items:
- $ref: '#/components/schemas/tileSet-item'
- type: array
- required:
- - tileSets
- type: object
- _dataset_vector_getTile_200_response:
- allOf:
- - format: geojson-feature-collection
- type: object
- - $ref: '#/components/schemas/FeatureCollection'
- collectionInfo_dataType:
- allOf:
- - description: Type of data represented in the collection
- type: object
- - $ref: '#/components/schemas/dataType'
- extent_spatial_bbox_inner:
- description: |-
- Each bounding box is provided as four or six numbers, depending on
- whether the coordinate reference system includes a vertical axis
- (height or depth):
-
- * Lower left corner, coordinate axis 1
- * Lower left corner, coordinate axis 2
- * Minimum value, coordinate axis 3 (optional)
- * Upper right corner, coordinate axis 1
- * Upper right corner, coordinate axis 2
- * Maximum value, coordinate axis 3 (optional)
-
- If the value consists of four numbers, the coordinate reference system is
- WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84)
- unless a different coordinate reference system is specified in a parameter `bbox-crs`.
-
- If the value consists of six numbers, the coordinate reference system is WGS 84
- longitude/latitude/ellipsoidal height (http://www.opengis.net/def/crs/OGC/0/CRS84h)
- unless a different coordinate reference system is specified in a parameter `bbox-crs`.
-
- For WGS 84 longitude/latitude the values are in most cases the sequence of
- minimum longitude, minimum latitude, maximum longitude and maximum latitude.
- However, in cases where the box spans the antimeridian the first value
- (west-most box edge) is larger than the third value (east-most box edge).
-
- If the vertical axis is included, the third and the sixth number are
- the bottom and the top of the 3-dimensional bounding box.
-
- If a feature has multiple spatial geometry properties, it is the decision of the
- server whether only a single spatial geometry property is used to determine
- the extent or all relevant geometries.
- items:
- type: number
- type: array
- extent_spatial_grid_inner_coordinates_inner:
- oneOf:
- - nullable: true
- type: string
- - type: number
- extent_spatial_grid_inner_resolution:
- description: Resolution of regularly gridded data along the dimension in the
- collection
- oneOf:
- - nullable: true
- type: string
- - type: number
- extent_spatial_grid_inner:
- properties:
- coordinates:
- description: |-
- List of coordinates along the dimension for which data organized as an irregular grid in the collection is available
- (e.g., 2, 10, 80, 100).
- items:
- $ref: '#/components/schemas/extent_spatial_grid_inner_coordinates_inner'
- minItems: 1
- type: array
- cellsCount:
- description: |-
- Number of samples available along the dimension for data organized as a regular grid.
- For values representing the whole area of contiguous cells spanning _resolution_ units along the dimension, this will be (_upperBound_ - _lowerBound_) / _resolution_.
- For values representing infinitely small point cells spaced by _resolution_ units along the dimension, this will be (_upperBound_ - _lowerBound_) / _resolution_ + 1.
- type: integer
- resolution:
- $ref: '#/components/schemas/extent_spatial_grid_inner_resolution'
- type: object
- extent_spatial:
- description: The spatial extent of the data in the collection.
- properties:
- bbox:
- description: |-
- One or more bounding boxes that describe the spatial extent of the dataset.
- In the Core only a single bounding box is supported.
-
- Extensions may support additional areas.
- The first bounding box describes the overall spatial
- extent of the data. All subsequent bounding boxes describe
- more precise bounding boxes, e.g., to identify clusters of data.
- Clients only interested in the overall spatial extent will
- only need to access the first item in each array.
- items:
- $ref: '#/components/schemas/extent_spatial_bbox_inner'
- minItems: 1
- type: array
- crs:
- default: http://www.opengis.net/def/crs/OGC/1.3/CRS84
- description: |-
- Coordinate reference system of the coordinates in the spatial extent
- (property `bbox`). The default reference system is WGS 84 longitude/latitude.
- In the Core the only other supported coordinate reference system is
- WGS 84 longitude/latitude/ellipsoidal height for coordinates with height.
- Extensions may support additional coordinate reference systems and add
- additional enum values.
- enum:
- - http://www.opengis.net/def/crs/OGC/1.3/CRS84
- - http://www.opengis.net/def/crs/OGC/0/CRS84h
- type: string
- grid:
- description: |-
- Provides information about the limited availability of data within the collection organized
- as a grid (regular or irregular) along each spatial dimension.
- items:
- $ref: '#/components/schemas/extent_spatial_grid_inner'
- maxItems: 3
- minItems: 2
- type: array
- type: object
- extent_temporal_grid_resolution:
- description: Resolution of regularly gridded data along the temporal dimension
- in the collection
- oneOf:
- - nullable: true
- type: string
- - type: number
- extent_temporal_grid:
- description: Provides information about the limited availability of data within
- the collection organized as a grid (regular or irregular) along the temporal
- dimension.
- properties:
- coordinates:
- description: |-
- List of coordinates along the temporal dimension for which data organized as an irregular grid in the collection is available
- (e.g., "2017-11-14T09:00Z","2017-11-14T12:00Z","2017-11-14T15:00Z","2017-11-14T18:00Z","2017-11-14T21:00Z").
- items:
- nullable: true
- type: string
- minItems: 1
- type: array
- cellsCount:
- description: |-
- Number of samples available along the temporal dimension for data organized as a regular grid.
- For values representing the whole area of contiguous cells spanning _resolution_ units along the dimension, this will be (_upperBound_ - _lowerBound_) / _resolution_.
- For values representing infinitely small point cells spaced by _resolution_ units along the dimension, this will be (_upperBound_ - _lowerBound_) / _resolution_ + 1.
- type: integer
- resolution:
- $ref: '#/components/schemas/extent_temporal_grid_resolution'
- type: object
- extent_temporal:
- description: The temporal extent of the features in the collection.
- properties:
- interval:
- description: |-
- One or more time intervals that describe the temporal extent of the dataset.
- In the Core only a single time interval is supported.
-
- Extensions may support multiple intervals.
- The first time interval describes the overall
- temporal extent of the data. All subsequent time intervals describe
- more precise time intervals, e.g., to identify clusters of data.
- Clients only interested in the overall extent will only need
- to access the first item in each array.
- items:
- description: |-
- Begin and end times of the time interval. The timestamps are in the
- temporal coordinate reference system specified in `trs`. By default
- this is the Gregorian calendar.
-
- The value `null` for start or end time is supported and indicates a half-bounded time interval.
- items:
- format: date-time
- nullable: true
- type: string
- maxItems: 2
- minItems: 2
- type: array
- minItems: 1
- type: array
- trs:
- default: http://www.opengis.net/def/uom/ISO-8601/0/Gregorian
- description: |-
- Coordinate reference system of the coordinates in the temporal extent
- (property `interval`). The default reference system is the Gregorian calendar.
- In the Core this is the only supported temporal coordinate reference system.
- Extensions may support additional temporal coordinate reference systems and add
- additional enum values.
- enum:
- - http://www.opengis.net/def/uom/ISO-8601/0/Gregorian
- type: string
- grid:
- $ref: '#/components/schemas/extent_temporal_grid'
- type: object
- crs_oneOf_oneOf:
- properties:
- uri:
- description: Reference to one coordinate reference system (CRS)
- format: uri
- type: string
- required:
- - uri
- type: object
- crs_oneOf_oneOf_1:
- properties:
- wkt:
- allOf:
- - description: An object defining the CRS using the JSON encoding for Well-known
- text representation of coordinate reference systems 2.0
- type: object
- - type: object
- required:
- - wkt
- type: object
- crs_oneOf_oneOf_2:
- properties:
- referenceSystem:
- description: A reference system data structure as defined in the MD_ReferenceSystem
- of the ISO 19115
- type: object
- required:
- - referenceSystem
- type: object
- crs_oneOf:
- oneOf:
- - $ref: '#/components/schemas/crs_oneOf_oneOf'
- - $ref: '#/components/schemas/crs_oneOf_oneOf_1'
- - $ref: '#/components/schemas/crs_oneOf_oneOf_2'
- type: object
- tileSet_dataType:
- allOf:
- - description: Type of data represented in the tileSet
- type: object
- - $ref: '#/components/schemas/dataType'
- tileSet_crs:
- allOf:
- - description: Coordinate Reference System (CRS)
- type: object
- - $ref: '#/components/schemas/crs'
- tileSet_boundingBox:
- allOf:
- - description: "Minimum bounding rectangle surrounding the tile matrix set,\
- \ in the supported CRS"
- type: object
- - $ref: '#/components/schemas/BoundingBox2D'
- tileSet_centerPoint:
- allOf:
- - description: Location of a tile that nicely represents the tileSet. Implementations
- may use this center value to set the default location or to present a representative
- tile in a user interface
- type: object
- - $ref: '#/components/schemas/tilePoint'
- tileSet_style:
- allOf:
- - description: Style involving all layers used to generate the tileSet
- type: object
- - $ref: '#/components/schemas/style'
- GeoJSON_Feature_id:
- oneOf:
- - type: number
- - type: string
- GeoJSON_Point:
- nullable: true
- properties:
- type:
- enum:
- - Point
- type: string
- coordinates:
- items:
- type: number
- minItems: 2
- type: array
- bbox:
- items:
- type: number
- minItems: 4
- type: array
- required:
- - coordinates
- - type
- title: GeoJSON Point
- type: object
- GeoJSON_LineString:
- properties:
- type:
- enum:
- - LineString
- type: string
- coordinates:
- items:
- items:
- type: number
- minItems: 2
- type: array
- minItems: 2
- type: array
- bbox:
- items:
- type: number
- minItems: 4
- type: array
- required:
- - coordinates
- - type
- title: GeoJSON LineString
- type: object
- GeoJSON_Polygon:
- properties:
- type:
- enum:
- - Polygon
- type: string
- coordinates:
- items:
- items:
- items:
- type: number
- minItems: 2
- type: array
- minItems: 4
- type: array
- type: array
- bbox:
- items:
- type: number
- minItems: 4
- type: array
- required:
- - coordinates
- - type
- title: GeoJSON Polygon
- type: object
- GeoJSON_MultiPoint:
- properties:
- type:
- enum:
- - MultiPoint
- type: string
- coordinates:
- items:
- items:
- type: number
- minItems: 2
- type: array
- type: array
- bbox:
- items:
- type: number
- minItems: 4
- type: array
- required:
- - coordinates
- - type
- title: GeoJSON MultiPoint
- type: object
- GeoJSON_MultiLineString:
- properties:
- type:
- enum:
- - MultiLineString
- type: string
- coordinates:
- items:
- items:
- items:
- type: number
- minItems: 2
- type: array
- minItems: 2
- type: array
- type: array
- bbox:
- items:
- type: number
- minItems: 4
- type: array
- required:
- - coordinates
- - type
- title: GeoJSON MultiLineString
- type: object
- GeoJSON_MultiPolygon:
- properties:
- type:
- enum:
- - MultiPolygon
- type: string
- coordinates:
- items:
- items:
- items:
- items:
- type: number
- minItems: 2
- type: array
- minItems: 4
- type: array
- type: array
- type: array
- bbox:
- items:
- type: number
- minItems: 4
- type: array
- required:
- - coordinates
- - type
- title: GeoJSON MultiPolygon
- type: object
- GeoJSON_Feature_geometry:
- oneOf:
- - $ref: '#/components/schemas/GeoJSON_Point'
- - $ref: '#/components/schemas/GeoJSON_LineString'
- - $ref: '#/components/schemas/GeoJSON_Polygon'
- - $ref: '#/components/schemas/GeoJSON_MultiPoint'
- - $ref: '#/components/schemas/GeoJSON_MultiLineString'
- - $ref: '#/components/schemas/GeoJSON_MultiPolygon'
- GeoJSON_Feature:
- properties:
- type:
- enum:
- - Feature
- type: string
- id:
- $ref: '#/components/schemas/GeoJSON_Feature_id'
- properties:
- nullable: true
- type: object
- geometry:
- $ref: '#/components/schemas/GeoJSON_Feature_geometry'
- bbox:
- items:
- type: number
- minItems: 4
- type: array
- required:
- - geometry
- - properties
- - type
- title: GeoJSON Feature
- type: object
- geospatialData_dataType:
- allOf:
- - description: Type of data represented in the layer
- type: object
- - $ref: '#/components/schemas/dataType'
- geospatialData_boundingBox:
- allOf:
- - description: Minimum bounding rectangle surrounding the layer
- type: object
- - $ref: '#/components/schemas/BoundingBox2D'
- geospatialData_style:
- allOf:
- - description: Style used to generate the layer in the tileSet
- type: object
- - $ref: '#/components/schemas/style'
- geospatialData_propertiesSchema:
- allOf:
- - description: Properties represented by the features in this layer. Can be
- the attributes of a feature dataset (datatype=geometries) or the rangeType
- of a coverage (datatype=coverage)
- type: object
- - $ref: '#/components/schemas/propertiesSchema'
- tilePoint_crs:
- allOf:
- - description: Coordinate Reference System (CRS) of the coordinates
- type: object
- - $ref: '#/components/schemas/crs'
- propertiesSchema_properties_value:
- description: No property names are defined but any property name they should
- be described by JSON Schema. So 'additionalProperties' implements 'name'.
- properties:
- title:
- type: string
- description:
- description: Implements 'description'
- type: string
- type:
- enum:
- - array
- - boolean
- - integer
- - "null"
- - number
- - object
- - string
- type: string
- enum:
- description: Implements 'acceptedValues'
- items:
- type: object
- minItems: 1
- type: array
- uniqueItems: true
- format:
- description: Complements implementation of 'type'
- type: string
- contentMediaType:
- description: Implements 'mediaType'
- type: string
- maximum:
- description: Implements 'range'
- type: number
- exclusiveMaximum:
- description: Implements 'range'
- type: number
- minimum:
- description: Implements 'range'
- type: number
- exclusiveMinimum:
- description: Implements 'range'
- type: number
- pattern:
- format: regex
- type: string
- maxItems:
- description: Implements 'upperMultiplicity'
- minimum: 0
- type: integer
- minItems:
- default: 0
- description: Implements 'lowerMultiplicity'
- minimum: 0
- type: integer
- observedProperty:
- type: string
- observedPropertyURI:
- format: uri
- type: string
- uom:
- type: string
- uomURI:
- format: uri
- type: string
- type: object
- link_1:
- properties:
- href:
- type: string
- rel:
- type: string
- type:
- type: string
- hreflang:
- type: string
- title:
- type: string
- length:
- type: integer
- required:
- - href
- type: object
- mb_style_sources_daraa:
- properties:
- type:
- type: string
- url:
- type: string
- type: object
- mb_style_sources:
- properties:
- daraa:
- $ref: '#/components/schemas/mb_style_sources_daraa'
- type: object
- layers_array_paint:
- properties:
- fill-color:
- type: string
- type: object
diff --git a/baremaps-ogcapi/src/main/resources/swagger.html b/baremaps-ogcapi/src/main/resources/swagger.html
deleted file mode 100644
index e32982445..000000000
--- a/baremaps-ogcapi/src/main/resources/swagger.html
+++ /dev/null
@@ -1,95 +0,0 @@
-
-
-
-
-
- Baremaps API
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/baremaps-ogcapi/src/main/resources/version.txt b/baremaps-ogcapi/src/main/resources/version.txt
deleted file mode 100644
index fae3ee5d4..000000000
--- a/baremaps-ogcapi/src/main/resources/version.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-application=Baremaps
-version=${project.version}
diff --git a/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/ApiResourceTest.java b/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/ApiResourceTest.java
deleted file mode 100644
index a592bca3d..000000000
--- a/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/ApiResourceTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.baremaps.ogcapi;
-
-import static org.junit.Assert.assertEquals;
-
-import javax.ws.rs.core.MediaType;
-import org.junit.Test;
-import org.junit.jupiter.api.Tag;
-
-public class ApiResourceTest extends OgcApiTest {
-
- @Test
- @Tag("integration")
- public void getSwaggerUI() {
- var response = target().path("/swagger").request().get();
- assertEquals(200, response.getStatus());
- assertEquals(MediaType.valueOf("text/html"), response.getMediaType());
- }
-
- @Test
- @Tag("integration")
- public void getJsonSpecification() {
- var response = target()
- .path("/api")
- .request()
- .header("mimeType", "application/json")
- .get();
- assertEquals(200, response.getStatus());
- assertEquals(MediaType.valueOf("application/json"), response.getMediaType());
- }
-}
diff --git a/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/CollectionsResourceTest.java b/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/CollectionsResourceTest.java
deleted file mode 100644
index 7fe3072ed..000000000
--- a/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/CollectionsResourceTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.baremaps.ogcapi;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import javax.ws.rs.core.MediaType;
-import org.junit.Test;
-import org.junit.jupiter.api.Tag;
-
-public class CollectionsResourceTest extends OgcApiTest {
-
- @Test
- @Tag("integration")
- public void getCollections() {
- var response = target().path("/collections").request().get();
- var body = response.readEntity(String.class);
- assertEquals(200, response.getStatus());
- assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getMediaType());
- assertTrue(body.contains("features"));
- }
-
- @Test
- @Tag("integration")
- public void getCollection() {
- var response = target().path("/collections/features").request().get();
- var body = response.readEntity(String.class);
- assertEquals(200, response.getStatus());
- assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getMediaType());
- assertTrue(body.contains("features"));
- }
-
-}
diff --git a/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/ConformanceResourceTest.java b/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/ConformanceResourceTest.java
deleted file mode 100644
index 767d42dc0..000000000
--- a/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/ConformanceResourceTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.baremaps.ogcapi;
-
-import static org.junit.Assert.assertEquals;
-
-import javax.ws.rs.core.MediaType;
-import org.junit.Test;
-import org.junit.jupiter.api.Tag;
-
-public class ConformanceResourceTest extends OgcApiTest {
-
- @Test
- @Tag("integration")
- public void getConformance() {
- var response = target().path("/conformance").request().get();
- assertEquals(200, response.getStatus());
- assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getMediaType());
- }
-
-}
diff --git a/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/DefaultResourceTest.java b/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/DefaultResourceTest.java
deleted file mode 100644
index bef1ba561..000000000
--- a/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/DefaultResourceTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.baremaps.ogcapi;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import javax.ws.rs.core.MediaType;
-import org.junit.Test;
-import org.junit.jupiter.api.Tag;
-
-public class DefaultResourceTest extends OgcApiTest {
-
- @Test
- @Tag("integration")
- public void getLandingPage() {
- var response = target().path("/").request().get();
- var body = response.readEntity(String.class);
- assertEquals(200, response.getStatus());
- assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getMediaType());
- assertTrue(body.contains("Baremaps"));
- }
-
-}
diff --git a/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/OgcApiTest.java b/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/OgcApiTest.java
deleted file mode 100644
index d6f4765bb..000000000
--- a/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/OgcApiTest.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.baremaps.ogcapi;
-
-import static io.servicetalk.data.jackson.jersey.ServiceTalkJacksonSerializerFeature.newContextResolver;
-import static org.apache.baremaps.utils.ObjectMapperUtils.objectMapper;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import java.io.IOException;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import javax.sql.DataSource;
-import org.apache.baremaps.tilestore.TileStore;
-import org.apache.baremaps.tilestore.postgres.PostgresTileStore;
-import org.apache.baremaps.utils.PostgresUtils;
-import org.apache.baremaps.vectortile.tileset.Tileset;
-import org.glassfish.hk2.utilities.binding.AbstractBinder;
-import org.glassfish.jersey.client.ClientConfig;
-import org.glassfish.jersey.media.multipart.MultiPartFeature;
-import org.glassfish.jersey.server.ResourceConfig;
-import org.glassfish.jersey.test.JerseyTest;
-import org.glassfish.jersey.test.TestProperties;
-import org.junit.jupiter.api.Tag;
-
-@Tag("integration")
-public abstract class OgcApiTest extends JerseyTest {
-
- private DataSource dataSource;
-
- @Override
- protected ResourceConfig configure() {
- // Create a datasource to a throwaway postgis database
- dataSource = PostgresUtils.createDataSource("jdbc:tc:postgis:13-3.1:///baremaps");
-
- // Initialize the database
- try (var connection = dataSource.getConnection()) {
- connection.createStatement().execute("create extension if not exists postgis");
- connection.createStatement().execute("create extension if not exists hstore");
- connection.createStatement().execute(
- "create table if not exists features (id integer primary key, property varchar, geometry geometry(Point, 4326))");
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
-
- // Configure the service
- enable(TestProperties.LOG_TRAFFIC);
- enable(TestProperties.DUMP_ENTITY);
-
- var style = Paths.get("../examples/openstreetmap/style.json").toAbsolutePath();
- var tileset = Paths.get("../examples/openstreetmap/tileset.json").toAbsolutePath();
-
- var objectMapper = objectMapper();
-
- Tileset config = null;
- try {
- config = objectMapper.readValue(tileset.toFile(), Tileset.class);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
-
- var tileStore = new PostgresTileStore(dataSource, config);
-
- return new ResourceConfig()
- .registerClasses(
- MultiPartFeature.class,
- DefaultResource.class,
- ApiResource.class,
- ConformanceResource.class,
- CollectionsResource.class,
- StylesResource.class,
- TilesResource.class)
- .register(newContextResolver(objectMapper))
- .register(new AbstractBinder() {
- @Override
- protected void configure() {
- bind(tileset).to(Path.class).named("tileset");
- bind(style).to(Path.class).named("style");
- bind(dataSource).to(DataSource.class);
- bind(tileStore).to(TileStore.class);
- bind(objectMapper).to(ObjectMapper.class);
- }
- });
- }
-
- @Override
- protected void configureClient(ClientConfig clientConfig) {
- clientConfig.register(MultiPartFeature.class);
- }
-}
diff --git a/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/StylesResourceTest.java b/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/StylesResourceTest.java
deleted file mode 100644
index 175ca3b1c..000000000
--- a/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/StylesResourceTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.baremaps.ogcapi;
-
-import static org.junit.Assert.*;
-
-import javax.ws.rs.core.MediaType;
-import org.junit.jupiter.api.Tag;
-import org.junit.jupiter.api.Test;
-
-class StylesResourceTest extends OgcApiTest {
-
- @Test
- @Tag("integration")
- void getStyleSet() {
- var response = target().path("/styles").request().get();
- var body = response.readEntity(String.class);
- assertEquals(200, response.getStatus());
- assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getMediaType());
- assertTrue(body.contains("default"));
- }
-
- @Test
- @Tag("integration")
- void getStyle() {
- var response = target().path("/styles/default").request().get();
- var body = response.readEntity(String.class);
- assertEquals(200, response.getStatus());
- assertEquals(MediaType.valueOf("application/vnd.mapbox.style+json"), response.getMediaType());
- assertTrue(body.contains("default"));
- }
-
-}
diff --git a/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/TilesResourceTest.java b/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/TilesResourceTest.java
deleted file mode 100644
index 39630c5fe..000000000
--- a/baremaps-ogcapi/src/test/java/org/apache/baremaps/ogcapi/TilesResourceTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.baremaps.ogcapi;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import javax.ws.rs.core.MediaType;
-import org.junit.jupiter.api.Test;
-
-class TilesResourceTest extends OgcApiTest {
-
- @Test
- void getTileSets() {
- var response = target().path("/tiles").request().get();
- var body = response.readEntity(String.class);
- assertEquals(200, response.getStatus());
- assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getMediaType());
- assertTrue(body.contains("default"));
- }
-
- @Test
- void getTileSet() {
- var response = target().path("/tiles/default").request().get();
- var body = response.readEntity(String.class);
- assertEquals(200, response.getStatus());
- assertEquals(MediaType.APPLICATION_JSON_TYPE, response.getMediaType());
- assertTrue(body.contains("default"));
- }
-}
diff --git a/baremaps-ogcapi/src/test/resources/features.geojson b/baremaps-ogcapi/src/test/resources/features.geojson
deleted file mode 100644
index 7fdc3566d..000000000
--- a/baremaps-ogcapi/src/test/resources/features.geojson
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "type": "FeatureCollection",
- "features": [
- {
- "type": "Feature",
- "geometry": {
- "type": "Point",
- "coordinates": [7.5, 47.5]
- },
- "properties": {
- "prop": "value0"
- }
- },
- {
- "type": "Feature",
- "geometry": {
- "type": "Point",
- "coordinates": [7.5, 47.5]
- },
- "properties": {
- "prop": "value1"
- }
- }
-
- ]
-}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index e02e1e5c9..395a1a388 100644
--- a/pom.xml
+++ b/pom.xml
@@ -51,7 +51,6 @@ limitations under the License.
baremaps-benchmark
baremaps-cli
baremaps-core
- baremaps-ogcapi
baremaps-server
@@ -133,9 +132,6 @@ limitations under the License.
3.2.1
1.3.2
1.6.13
-
- 6.2.1
1.7.0
0.6.1
2.40.0
@@ -174,11 +170,6 @@ limitations under the License.
jackson-dataformat-yaml
${version.lib.jackson}
-
- com.fasterxml.jackson.datatype
- jackson-datatype-jdk8
- ${version.lib.jackson}
-
com.github.ben-manes.caffeine
caffeine
@@ -254,17 +245,6 @@ limitations under the License.
servicetalk-transport-netty
${version.lib.servicetalk}
-
- io.swagger.parser.v3
- swagger-parser
- ${version.lib.swagger-parser}
-
-
- javax.validation
- validation-api
-
-
-
it.unimi.dsi
fastutil
@@ -315,11 +295,6 @@ limitations under the License.
baremaps-core
${project.parent.version}
-
- org.apache.baremaps
- baremaps-ogcapi
- ${project.parent.version}
-
org.apache.baremaps
baremaps-server
@@ -534,10 +509,6 @@ limitations under the License.
com.fasterxml.jackson.core
jackson-databind
-
- com.fasterxml.jackson.datatype
- jackson-datatype-jdk8
-
org.apache.logging.log4j