This is an automated email from the ASF dual-hosted git repository.

bchapuis pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git


The following commit(s) were added to refs/heads/main by this push:
     new 00a9cfae Add geoBoundaries dataset to basemap (#584)
00a9cfae is described below

commit 00a9cfaef4717a8ca291e805a36839ca3c7c0c80
Author: Bertil Chapuis <[email protected]>
AuthorDate: Sun Feb 19 16:43:46 2023 +0100

    Add geoBoundaries dataset to basemap (#584)
---
 .run/basemap-dev.run.xml                           |  22 +
 .../storage/postgres/PostgresDatabase.java         |   4 +-
 basemap/layers/boundary/line.js                    |   4 +
 basemap/layers/boundary/tileset.js                 |  12 +-
 basemap/queries/globaladm0_clean.sql               |  22 +
 basemap/queries/globaladm0_index.sql               |  16 +
 basemap/queries/globaladm0_simplify.sql            |  64 +++
 basemap/queries/globaladm1_clean.sql               |  22 +
 basemap/queries/globaladm1_index.sql               |  16 +
 basemap/queries/globaladm1_simplify.sql            |  64 +++
 basemap/queries/globaladm2_clean.sql               |  22 +
 basemap/queries/globaladm2_index.sql               |  16 +
 basemap/queries/globaladm2_simplify.sql            |  64 +++
 basemap/tileset.js                                 |   2 +-
 basemap/workflow.js                                | 600 ++++++++++++---------
 15 files changed, 695 insertions(+), 255 deletions(-)

diff --git a/.run/basemap-dev.run.xml b/.run/basemap-dev.run.xml
new file mode 100644
index 00000000..579f21a4
--- /dev/null
+++ b/.run/basemap-dev.run.xml
@@ -0,0 +1,22 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="basemap-dev" type="Application" 
factoryName="Application">
+    <option name="MAIN_CLASS_NAME" value="org.apache.baremaps.cli.Baremaps" />
+    <module name="baremaps-cli" />
+    <option name="PROGRAM_PARAMETERS" value="map dev --database 
jdbc:postgresql://localhost:5432/baremaps?user=baremaps&amp;password=baremaps 
--tileset tileset.js --style style.js" />
+    <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/basemap" />
+    <extension name="coverage">
+      <pattern>
+        <option name="PATTERN" value="org.apache.baremaps.server.ogcapi.*" />
+        <option name="ENABLED" value="true" />
+      </pattern>
+    </extension>
+    <extension 
name="software.aws.toolkits.jetbrains.core.execution.JavaAwsConnectionExtension">
+      <option name="credential" />
+      <option name="region" />
+      <option name="useCurrentConnection" value="false" />
+    </extension>
+    <method v="2">
+      <option name="Make" enabled="true" />
+    </method>
+  </configuration>
+</component>
\ No newline at end of file
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/postgres/PostgresDatabase.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/postgres/PostgresDatabase.java
index 5a9b9083..0d2436cb 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/postgres/PostgresDatabase.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/postgres/PostgresDatabase.java
@@ -181,7 +181,7 @@ public class PostgresDatabase implements WritableAggregate {
       var type = featureSet.getType();
       try (var connection = dataSource.getConnection();
           var statement = connection.createStatement()) {
-        statement.executeQuery(String.format("DROP TABLE IF EXISTS %s", 
type.getName()));
+        statement.executeQuery(String.format("DROP TABLE IF EXISTS %s 
CASCADE", type.getName()));
       } catch (SQLException e) {
         throw new RuntimeException(e);
       }
@@ -189,7 +189,7 @@ public class PostgresDatabase implements WritableAggregate {
   }
 
   private String dropTable(FeatureType type) {
-    return String.format("DROP TABLE IF EXISTS %s", type.getName());
+    return String.format("DROP TABLE IF EXISTS %s CASCADE", type.getName());
   }
 
 }
diff --git a/basemap/layers/boundary/line.js b/basemap/layers/boundary/line.js
index 55590dd2..de5f429c 100644
--- a/basemap/layers/boundary/line.js
+++ b/basemap/layers/boundary/line.js
@@ -1,6 +1,10 @@
 import {asLayerObject, withSortKeys} from "../../utils/utils.js";
 
 let directives = [
+    {
+        filter: ['==', ['get', 'admin_level'], "0"],
+        'line-color': 'rgb(207, 155, 203)',
+    },
     {
         filter: ['==', ['get', 'admin_level'], "1"],
         'line-color': 'rgb(207, 155, 203)',
diff --git a/basemap/layers/boundary/tileset.js 
b/basemap/layers/boundary/tileset.js
index 0064584a..8d305424 100644
--- a/basemap/layers/boundary/tileset.js
+++ b/basemap/layers/boundary/tileset.js
@@ -3,18 +3,18 @@ export default {
     queries: [
         {
             minzoom: 1,
-            maxzoom: 5,
+            maxzoom: 6,
             sql:
-                "SELECT id, tags, geom FROM osm_boundary_z$zoom WHERE tags ->> 
'boundary' IN ('administrative') AND tags ->> 'admin_level' IN ('1', '2')",
+                "SELECT fid as id, jsonb_build_object('boundary', 
'administrative', 'admin_level', '0') as tags, geom FROM globaladm0_z$zoom",
         },
         {
-            minzoom: 5,
-            maxzoom: 13,
+            minzoom: 6,
+            maxzoom: 14,
             sql:
-                "SELECT id, tags, geom FROM osm_boundary_z$zoom WHERE tags ->> 
'boundary' IN ('administrative') AND tags ->> 'admin_level' IN ('1', '2', '3', 
'4')",
+                "SELECT fid as id, jsonb_build_object('boundary', 
'administrative', 'admin_level', '1') as tags, geom FROM globaladm1_z$zoom",
         },
         {
-            minzoom: 13,
+            minzoom: 14,
             maxzoom: 20,
             sql:
                 "SELECT id, tags, geom FROM osm_ways_z$zoom WHERE tags ? 
'boundary'",
diff --git a/basemap/queries/globaladm0_clean.sql 
b/basemap/queries/globaladm0_clean.sql
new file mode 100644
index 00000000..75af7114
--- /dev/null
+++ b/basemap/queries/globaladm0_clean.sql
@@ -0,0 +1,22 @@
+DROP VIEW IF EXISTS globaladm0_z20 CASCADE;
+DROP VIEW IF EXISTS globaladm0_z19 CASCADE;
+DROP VIEW IF EXISTS globaladm0_z18 CASCADE;
+DROP VIEW IF EXISTS globaladm0_z17 CASCADE;
+DROP VIEW IF EXISTS globaladm0_z16 CASCADE;
+DROP VIEW IF EXISTS globaladm0_z15 CASCADE;
+DROP VIEW IF EXISTS globaladm0_z14 CASCADE;
+
+DROP MATERIALIZED VIEW IF EXISTS globaladm0_z13 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm0_z12 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm0_z11 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm0_z10 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm0_z9 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm0_z8 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm0_z7 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm0_z6 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm0_z5 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm0_z4 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm0_z3 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm0_z2 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm0_z1 CASCADE;
+
diff --git a/basemap/queries/globaladm0_index.sql 
b/basemap/queries/globaladm0_index.sql
new file mode 100644
index 00000000..41e6288b
--- /dev/null
+++ b/basemap/queries/globaladm0_index.sql
@@ -0,0 +1,16 @@
+CREATE INDEX IF NOT EXISTS globaladm0_index ON globaladm0 USING SPGIST(geom);
+CREATE INDEX IF NOT EXISTS globaladm0_z12_index ON globaladm0_z12 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm0_z11_index ON globaladm0_z11 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm0_z10_index ON globaladm0_z10 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm0_z9_index ON globaladm0_z9 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm0_z8_index ON globaladm0_z8 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm0_z7_index ON globaladm0_z7 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm0_z6_index ON globaladm0_z6 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm0_z5_index ON globaladm0_z5 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm0_z4_index ON globaladm0_z4 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm0_z3_index ON globaladm0_z3 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm0_z2_index ON globaladm0_z2 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm0_z1_index ON globaladm0_z1 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm0_z0_index ON globaladm0_z0 USING SPGIST 
(geom);
+
+
diff --git a/basemap/queries/globaladm0_simplify.sql 
b/basemap/queries/globaladm0_simplify.sql
new file mode 100644
index 00000000..37b239fc
--- /dev/null
+++ b/basemap/queries/globaladm0_simplify.sql
@@ -0,0 +1,64 @@
+CREATE VIEW globaladm0_z20 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm0;
+
+CREATE VIEW globaladm0_z19 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm0;
+
+CREATE VIEW globaladm0_z18 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm0;
+
+CREATE VIEW globaladm0_z17 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm0;
+
+CREATE VIEW globaladm0_z16 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm0;
+
+CREATE VIEW globaladm0_z15 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm0;
+
+CREATE VIEW globaladm0_z14 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm0;
+
+CREATE VIEW globaladm0_z13 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm0;
+
+CREATE MATERIALIZED VIEW globaladm0_z12 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 12)) AS geom FROM globaladm0;
+
+CREATE MATERIALIZED VIEW globaladm0_z11 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 11)) AS geom FROM globaladm0;
+
+CREATE MATERIALIZED VIEW globaladm0_z10 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 10)) AS geom FROM globaladm0;
+
+CREATE MATERIALIZED VIEW globaladm0_z9 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 9)) AS geom FROM globaladm0;
+
+CREATE MATERIALIZED VIEW globaladm0_z8 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 8)) AS geom FROM globaladm0;
+
+CREATE MATERIALIZED VIEW globaladm0_z7 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 7)) AS geom FROM globaladm0;
+
+CREATE MATERIALIZED VIEW globaladm0_z6 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 6)) AS geom FROM globaladm0;
+
+CREATE MATERIALIZED VIEW globaladm0_z5 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 5)) AS geom FROM globaladm0;
+
+CREATE MATERIALIZED VIEW globaladm0_z4 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 4)) AS geom FROM globaladm0;
+
+CREATE MATERIALIZED VIEW globaladm0_z3 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 3)) AS geom FROM globaladm0;
+
+CREATE MATERIALIZED VIEW globaladm0_z2 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 2)) AS geom FROM globaladm0;
+
+CREATE MATERIALIZED VIEW globaladm0_z1 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 1)) AS geom FROM globaladm0;
+
+CREATE MATERIALIZED VIEW globaladm0_z0 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 0)) AS geom FROM globaladm0;
+
+
diff --git a/basemap/queries/globaladm1_clean.sql 
b/basemap/queries/globaladm1_clean.sql
new file mode 100644
index 00000000..2f427c5f
--- /dev/null
+++ b/basemap/queries/globaladm1_clean.sql
@@ -0,0 +1,22 @@
+DROP VIEW IF EXISTS globaladm1_z20 CASCADE;
+DROP VIEW IF EXISTS globaladm1_z19 CASCADE;
+DROP VIEW IF EXISTS globaladm1_z18 CASCADE;
+DROP VIEW IF EXISTS globaladm1_z17 CASCADE;
+DROP VIEW IF EXISTS globaladm1_z16 CASCADE;
+DROP VIEW IF EXISTS globaladm1_z15 CASCADE;
+DROP VIEW IF EXISTS globaladm1_z14 CASCADE;
+
+DROP MATERIALIZED VIEW IF EXISTS globaladm1_z13 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm1_z12 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm1_z11 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm1_z10 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm1_z9 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm1_z8 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm1_z7 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm1_z6 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm1_z5 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm1_z4 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm1_z3 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm1_z2 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm1_z1 CASCADE;
+
diff --git a/basemap/queries/globaladm1_index.sql 
b/basemap/queries/globaladm1_index.sql
new file mode 100644
index 00000000..8f56089a
--- /dev/null
+++ b/basemap/queries/globaladm1_index.sql
@@ -0,0 +1,16 @@
+CREATE INDEX IF NOT EXISTS globaladm1_index ON globaladm1 USING SPGIST(geom);
+CREATE INDEX IF NOT EXISTS globaladm1_z12_index ON globaladm1_z12 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm1_z11_index ON globaladm1_z11 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm1_z10_index ON globaladm1_z10 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm1_z9_index ON globaladm1_z9 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm1_z8_index ON globaladm1_z8 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm1_z7_index ON globaladm1_z7 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm1_z6_index ON globaladm1_z6 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm1_z5_index ON globaladm1_z5 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm1_z4_index ON globaladm1_z4 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm1_z3_index ON globaladm1_z3 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm1_z2_index ON globaladm1_z2 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm1_z1_index ON globaladm1_z1 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm1_z0_index ON globaladm1_z0 USING SPGIST 
(geom);
+
+
diff --git a/basemap/queries/globaladm1_simplify.sql 
b/basemap/queries/globaladm1_simplify.sql
new file mode 100644
index 00000000..0ce52f03
--- /dev/null
+++ b/basemap/queries/globaladm1_simplify.sql
@@ -0,0 +1,64 @@
+CREATE VIEW globaladm1_z20 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm1;
+
+CREATE VIEW globaladm1_z19 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm1;
+
+CREATE VIEW globaladm1_z18 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm1;
+
+CREATE VIEW globaladm1_z17 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm1;
+
+CREATE VIEW globaladm1_z16 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm1;
+
+CREATE VIEW globaladm1_z15 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm1;
+
+CREATE VIEW globaladm1_z14 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm1;
+
+CREATE VIEW globaladm1_z13 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm1;
+
+CREATE MATERIALIZED VIEW globaladm1_z12 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 12)) AS geom FROM globaladm1;
+
+CREATE MATERIALIZED VIEW globaladm1_z11 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 11)) AS geom FROM globaladm1;
+
+CREATE MATERIALIZED VIEW globaladm1_z10 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 10)) AS geom FROM globaladm1;
+
+CREATE MATERIALIZED VIEW globaladm1_z9 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 9)) AS geom FROM globaladm1;
+
+CREATE MATERIALIZED VIEW globaladm1_z8 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 8)) AS geom FROM globaladm1;
+
+CREATE MATERIALIZED VIEW globaladm1_z7 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 7)) AS geom FROM globaladm1;
+
+CREATE MATERIALIZED VIEW globaladm1_z6 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 6)) AS geom FROM globaladm1;
+
+CREATE MATERIALIZED VIEW globaladm1_z5 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 5)) AS geom FROM globaladm1;
+
+CREATE MATERIALIZED VIEW globaladm1_z4 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 4)) AS geom FROM globaladm1;
+
+CREATE MATERIALIZED VIEW globaladm1_z3 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 3)) AS geom FROM globaladm1;
+
+CREATE MATERIALIZED VIEW globaladm1_z2 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 2)) AS geom FROM globaladm1;
+
+CREATE MATERIALIZED VIEW globaladm1_z1 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 1)) AS geom FROM globaladm1;
+
+CREATE MATERIALIZED VIEW globaladm1_z0 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 0)) AS geom FROM globaladm1;
+
+
diff --git a/basemap/queries/globaladm2_clean.sql 
b/basemap/queries/globaladm2_clean.sql
new file mode 100644
index 00000000..96353426
--- /dev/null
+++ b/basemap/queries/globaladm2_clean.sql
@@ -0,0 +1,22 @@
+DROP VIEW IF EXISTS globaladm2_z20 CASCADE;
+DROP VIEW IF EXISTS globaladm2_z19 CASCADE;
+DROP VIEW IF EXISTS globaladm2_z18 CASCADE;
+DROP VIEW IF EXISTS globaladm2_z17 CASCADE;
+DROP VIEW IF EXISTS globaladm2_z16 CASCADE;
+DROP VIEW IF EXISTS globaladm2_z15 CASCADE;
+DROP VIEW IF EXISTS globaladm2_z14 CASCADE;
+
+DROP MATERIALIZED VIEW IF EXISTS globaladm2_z13 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm2_z12 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm2_z11 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm2_z10 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm2_z9 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm2_z8 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm2_z7 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm2_z6 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm2_z5 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm2_z4 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm2_z3 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm2_z2 CASCADE;
+DROP MATERIALIZED VIEW IF EXISTS globaladm2_z1 CASCADE;
+
diff --git a/basemap/queries/globaladm2_index.sql 
b/basemap/queries/globaladm2_index.sql
new file mode 100644
index 00000000..7b7f80d5
--- /dev/null
+++ b/basemap/queries/globaladm2_index.sql
@@ -0,0 +1,16 @@
+CREATE INDEX IF NOT EXISTS globaladm2_index ON globaladm2 USING SPGIST(geom);
+CREATE INDEX IF NOT EXISTS globaladm2_z12_index ON globaladm2_z12 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm2_z11_index ON globaladm2_z11 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm2_z10_index ON globaladm2_z10 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm2_z9_index ON globaladm2_z9 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm2_z8_index ON globaladm2_z8 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm2_z7_index ON globaladm2_z7 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm2_z6_index ON globaladm2_z6 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm2_z5_index ON globaladm2_z5 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm2_z4_index ON globaladm2_z4 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm2_z3_index ON globaladm2_z3 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm2_z2_index ON globaladm2_z2 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm2_z1_index ON globaladm2_z1 USING SPGIST 
(geom);
+CREATE INDEX IF NOT EXISTS globaladm2_z0_index ON globaladm2_z0 USING SPGIST 
(geom);
+
+
diff --git a/basemap/queries/globaladm2_simplify.sql 
b/basemap/queries/globaladm2_simplify.sql
new file mode 100644
index 00000000..6657cb5e
--- /dev/null
+++ b/basemap/queries/globaladm2_simplify.sql
@@ -0,0 +1,64 @@
+CREATE VIEW globaladm2_z20 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm2;
+
+CREATE VIEW globaladm2_z19 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm2;
+
+CREATE VIEW globaladm2_z18 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm2;
+
+CREATE VIEW globaladm2_z17 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm2;
+
+CREATE VIEW globaladm2_z16 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm2;
+
+CREATE VIEW globaladm2_z15 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm2;
+
+CREATE VIEW globaladm2_z14 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm2;
+
+CREATE VIEW globaladm2_z13 AS
+SELECT fid, shapegroup, shapetype, geom FROM globaladm2;
+
+CREATE MATERIALIZED VIEW globaladm2_z12 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 12)) AS geom FROM globaladm2;
+
+CREATE MATERIALIZED VIEW globaladm2_z11 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 11)) AS geom FROM globaladm2;
+
+CREATE MATERIALIZED VIEW globaladm2_z10 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 10)) AS geom FROM globaladm2;
+
+CREATE MATERIALIZED VIEW globaladm2_z9 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 9)) AS geom FROM globaladm2;
+
+CREATE MATERIALIZED VIEW globaladm2_z8 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 8)) AS geom FROM globaladm2;
+
+CREATE MATERIALIZED VIEW globaladm2_z7 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 7)) AS geom FROM globaladm2;
+
+CREATE MATERIALIZED VIEW globaladm2_z6 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 6)) AS geom FROM globaladm2;
+
+CREATE MATERIALIZED VIEW globaladm2_z5 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 5)) AS geom FROM globaladm2;
+
+CREATE MATERIALIZED VIEW globaladm2_z4 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 4)) AS geom FROM globaladm2;
+
+CREATE MATERIALIZED VIEW globaladm2_z3 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 3)) AS geom FROM globaladm2;
+
+CREATE MATERIALIZED VIEW globaladm2_z2 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 2)) AS geom FROM globaladm2;
+
+CREATE MATERIALIZED VIEW globaladm2_z1 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 1)) AS geom FROM globaladm2;
+
+CREATE MATERIALIZED VIEW globaladm2_z0 AS
+SELECT fid, shapegroup, shapetype, st_simplifypreservetopology(geom, 78270 / 
power(2, 0)) AS geom FROM globaladm2;
+
+
diff --git a/basemap/tileset.js b/basemap/tileset.js
index 16a366bf..28ec0130 100644
--- a/basemap/tileset.js
+++ b/basemap/tileset.js
@@ -27,7 +27,7 @@ export default {
   "tiles": [
     `${config.host}/tiles/{z}/{x}/{y}.mvt`
   ],
-  attribution: '© <a href="https://www.openstreetmap.org/";>OpenStreetMap</a> 
contributors',
+  attribution: '© <a href="https://www.openstreetmap.org/";>OpenStreetMap</a> © 
<a href="https://www.geoboundaries.org";>geoBoundaries</a>',
   "vector_layers": [
     aerialway,
     aeroway,
diff --git a/basemap/workflow.js b/basemap/workflow.js
index cb2a11b8..2952732e 100644
--- a/basemap/workflow.js
+++ b/basemap/workflow.js
@@ -2,319 +2,427 @@ import config from "./config.js";
 
 export default {
   "steps": [
+    // {
+    //   "id": "natural-earth",
+    //   "needs": [],
+    //   "tasks": [
+    //     {
+    //       "type": "DownloadUrl",
+    //       "url": 
"https://naciscdn.org/naturalearth/packages/natural_earth_vector.gpkg.zip";,
+    //       "path": "data/natural_earth_vector.gpkg.zip"
+    //     },
+    //     {
+    //       "type": "UnzipFile",
+    //       "file": "data/natural_earth_vector.gpkg.zip",
+    //       "directory": "data/natural_earth_vector"
+    //     },
+    //     {
+    //       "type": "ImportGeoPackage",
+    //       "file": 
"data/natural_earth_vector/packages/natural_earth_vector.gpkg",
+    //       "database": config.database,
+    //       "sourceSRID": 4326,
+    //       "targetSRID": 3857
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/ne_index.sql",
+    //       "database": config.database,
+    //       "parallel": true,
+    //     }
+    //   ]
+    // },
     {
-      "id": "natural-earth",
+      "id": "globaladm0",
       "needs": [],
       "tasks": [
         {
           "type": "DownloadUrl",
-          "url": 
"https://naciscdn.org/naturalearth/packages/natural_earth_vector.gpkg.zip";,
-          "path": "data/natural_earth_vector.gpkg.zip"
-        },
-        {
-          "type": "UnzipFile",
-          "file": "data/natural_earth_vector.gpkg.zip",
-          "directory": "data/natural_earth_vector"
+          "url": 
"https://github.com/wmgeolab/geoBoundaries/raw/main/releaseData/CGAZ/geoBoundariesCGAZ_ADM0.gpkg";,
+          "path": "data/geoBoundariesCGAZ_ADM0.gpkg"
         },
         {
           "type": "ImportGeoPackage",
-          "file": 
"data/natural_earth_vector/packages/natural_earth_vector.gpkg",
+          "file": "data/geoBoundariesCGAZ_ADM0.gpkg",
           "database": config.database,
           "sourceSRID": 4326,
           "targetSRID": 3857
         },
         {
           "type": "ExecuteSql",
-          "file": "queries/ne_index.sql",
+          "file": "queries/globaladm0_clean.sql",
           "database": config.database,
           "parallel": true,
-        }
-      ]
-    },
-    {
-      "id": "water-polygons",
-      "needs": [],
-      "tasks": [
-        {
-          "type": "DownloadUrl",
-          "url": 
"https://osmdata.openstreetmap.de/download/water-polygons-split-3857.zip";,
-          "path": "data/water-polygons-split-3857.zip"
-        },
-        {
-          "type": "UnzipFile",
-          "file": "data/water-polygons-split-3857.zip",
-          "directory": "data"
-        },
-        {
-          "type": "ImportShapefile",
-          "file": "data/water-polygons-split-3857/water_polygons.shp",
-          "database": config.database,
-          "sourceSRID": 3857,
-          "targetSRID": 3857
         },
         {
           "type": "ExecuteSql",
-          "file": "queries/osm_water_index.sql",
-          "database": 
"jdbc:postgresql://localhost:5432/baremaps?&user=baremaps&password=baremaps"
-        }
-      ]
-    },
-    {
-      "id": "simplified-water-polygons",
-      "needs": [],
-      "tasks": [
-        {
-          "type": "DownloadUrl",
-          "url": 
"https://osmdata.openstreetmap.de/download/simplified-water-polygons-split-3857.zip";,
-          "path": "data/simplified-water-polygons-split-3857.zip"
-        },
-        {
-          "type": "UnzipFile",
-          "file": "data/simplified-water-polygons-split-3857.zip",
-          "directory": "data"
-        },
-        {
-          "type": "ImportShapefile",
-          "file": 
"data/simplified-water-polygons-split-3857/simplified_water_polygons.shp",
+          "file": "queries/globaladm0_simplify.sql",
           "database": config.database,
-          "sourceSRID": 3857,
-          "targetSRID": 3857
+          "parallel": true,
         },
         {
           "type": "ExecuteSql",
-          "file": "queries/osm_simplified_water_index.sql",
+          "file": "queries/globaladm0_index.sql",
           "database": config.database,
-        },
+          "parallel": true,
+        }
       ]
     },
     {
-      "id": "openstreetmap-data",
+      "id": "globaladm1",
       "needs": [],
       "tasks": [
         {
           "type": "DownloadUrl",
-          "url": 
"https://download.geofabrik.de/europe/switzerland-latest.osm.pbf";,
-          "path": "data/data.osm.pbf"
-        },
-        {
-          "type": "ImportOpenStreetMap",
-          "file": "data/data.osm.pbf",
-          "database": config.database,
-          "databaseSrid": 3857
+          "url": 
"https://github.com/wmgeolab/geoBoundaries/raw/main/releaseData/CGAZ/geoBoundariesCGAZ_ADM1.gpkg";,
+          "path": "data/geoBoundariesCGAZ_ADM1.gpkg"
         },
-      ]
-    },
-    {
-      "id": "openstreetmap-nodes",
-      "needs": ["openstreetmap-data"],
-      "tasks": [
         {
-          "type": "ExecuteSql",
-          "file": "queries/osm_nodes_clean.sql",
-          "database": config.database,
-        },
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_nodes_prepare.sql",
-          "database": config.database,
-        },
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_nodes_simplify.sql",
-          "database": config.database,
-        },
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_nodes_index.sql",
-          "database": config.database,
-        },
-      ]
-    },
-    {
-      "id": "openstreetmap-ways",
-      "needs": ["openstreetmap-data"],
-      "tasks": [
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_ways_clean.sql",
-          "database": config.database,
-        },
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_ways_prepare.sql",
-          "database": config.database,
-        },
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_ways_simplify.sql",
-          "database": config.database,
-        },
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_ways_index.sql",
-          "database": config.database,
-        },
-      ]
-    },
-    {
-      "id": "openstreetmap-relations",
-      "needs": ["openstreetmap-data"],
-      "tasks": [
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_relations_clean.sql",
-          "database": config.database,
-        },
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_relations_prepare.sql",
-          "database": config.database,
-        },
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_relations_simplify.sql",
-          "database": config.database,
-        },
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_relations_index.sql",
-          "database": config.database,
-        },
-      ]
-    },
-    {
-      "id": "openstreetmap-linestring",
-      "needs": ["openstreetmap-ways"],
-      "tasks": [
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_linestring.sql",
-          "database": config.database,
-        },
-      ]
-    },
-    {
-      "id": "openstreetmap-polygon",
-      "needs": ["openstreetmap-ways", "openstreetmap-relations"],
-      "tasks": [
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_polygon_prepare.sql",
-          "database": config.database,
-        },
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_polygon_index.sql",
-          "database": config.database,
-        },
-      ]
-    },
-    {
-      "id": "openstreetmap-boundary",
-      "needs": ["openstreetmap-linestring"],
-      "tasks": [
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_boundary_prepare.sql",
-          "database": config.database,
-        },
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_boundary_simplify.sql",
-          "database": config.database,
-        },
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_boundary_index.sql",
+          "type": "ImportGeoPackage",
+          "file": "data/geoBoundariesCGAZ_ADM1.gpkg",
           "database": config.database,
+          "sourceSRID": 4326,
+          "targetSRID": 3857
         },
-      ]
-    },
-    {
-      "id": "openstreetmap-highway",
-      "needs": ["openstreetmap-linestring"],
-      "tasks": [
         {
           "type": "ExecuteSql",
-          "file": "queries/osm_highway_prepare.sql",
+          "file": "queries/globaladm1_clean.sql",
           "database": config.database,
+          "parallel": true,
         },
         {
           "type": "ExecuteSql",
-          "file": "queries/osm_highway_simplify.sql",
+          "file": "queries/globaladm1_simplify.sql",
           "database": config.database,
+          "parallel": true,
         },
         {
           "type": "ExecuteSql",
-          "file": "queries/osm_highway_index.sql",
+          "file": "queries/globaladm1_index.sql",
           "database": config.database,
-        },
+          "parallel": true,
+        }
       ]
     },
     {
-      "id": "openstreetmap-railway",
-      "needs": ["openstreetmap-linestring"],
+      "id": "globaladm2",
+      "needs": [],
       "tasks": [
         {
-          "type": "ExecuteSql",
-          "file": "queries/osm_railway_prepare.sql",
-          "database": config.database,
-        },
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_railway_simplify.sql",
-          "database": config.database,
+          "type": "DownloadUrl",
+          "url": 
"https://github.com/wmgeolab/geoBoundaries/raw/main/releaseData/CGAZ/geoBoundariesCGAZ_ADM2.gpkg";,
+          "path": "data/geoBoundariesCGAZ_ADM2.gpkg"
         },
         {
-          "type": "ExecuteSql",
-          "file": "queries/osm_railway_index.sql",
+          "type": "ImportGeoPackage",
+          "file": "data/geoBoundariesCGAZ_ADM2.gpkg",
           "database": config.database,
+          "sourceSRID": 4326,
+          "targetSRID": 3857
         },
-      ]
-    },
-    {
-      "id": "openstreetmap-natural",
-      "needs": ["openstreetmap-polygon"],
-      "tasks": [
         {
           "type": "ExecuteSql",
-          "file": "queries/osm_natural_prepare.sql",
+          "file": "queries/globaladm2_clean.sql",
           "database": config.database,
+          "parallel": true,
         },
         {
           "type": "ExecuteSql",
-          "file": "queries/osm_natural_simplify.sql",
+          "file": "queries/globaladm2_simplify.sql",
           "database": config.database,
+          "parallel": true,
         },
         {
           "type": "ExecuteSql",
-          "file": "queries/osm_natural_index.sql",
+          "file": "queries/globaladm2_index.sql",
           "database": config.database,
-          "parallel": true
-        },
+          "parallel": true,
+        }
       ]
     },
-    {
-      "id": "openstreetmap-landuse",
-      "needs": ["openstreetmap-polygon"],
-      "tasks": [
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_landuse_prepare.sql",
-          "database": config.database,
-        },
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_landuse_simplify.sql",
-          "database": config.database,
-        },
-        {
-          "type": "ExecuteSql",
-          "file": "queries/osm_landuse_index.sql",
-          "database": config.database,
-          "parallel": true
-        },
-      ]
-    }
+    // {
+    //   "id": "water-polygons",
+    //   "needs": [],
+    //   "tasks": [
+    //     {
+    //       "type": "DownloadUrl",
+    //       "url": 
"https://osmdata.openstreetmap.de/download/water-polygons-split-3857.zip";,
+    //       "path": "data/water-polygons-split-3857.zip"
+    //     },
+    //     {
+    //       "type": "UnzipFile",
+    //       "file": "data/water-polygons-split-3857.zip",
+    //       "directory": "data"
+    //     },
+    //     {
+    //       "type": "ImportShapefile",
+    //       "file": "data/water-polygons-split-3857/water_polygons.shp",
+    //       "database": config.database,
+    //       "sourceSRID": 3857,
+    //       "targetSRID": 3857
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_water_index.sql",
+    //       "database": 
"jdbc:postgresql://localhost:5432/baremaps?&user=baremaps&password=baremaps"
+    //     }
+    //   ]
+    // },
+    // {
+    //   "id": "simplified-water-polygons",
+    //   "needs": [],
+    //   "tasks": [
+    //     {
+    //       "type": "DownloadUrl",
+    //       "url": 
"https://osmdata.openstreetmap.de/download/simplified-water-polygons-split-3857.zip";,
+    //       "path": "data/simplified-water-polygons-split-3857.zip"
+    //     },
+    //     {
+    //       "type": "UnzipFile",
+    //       "file": "data/simplified-water-polygons-split-3857.zip",
+    //       "directory": "data"
+    //     },
+    //     {
+    //       "type": "ImportShapefile",
+    //       "file": 
"data/simplified-water-polygons-split-3857/simplified_water_polygons.shp",
+    //       "database": config.database,
+    //       "sourceSRID": 3857,
+    //       "targetSRID": 3857
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_simplified_water_index.sql",
+    //       "database": config.database,
+    //     },
+    //   ]
+    // },
+    // {
+    //   "id": "openstreetmap-data",
+    //   "needs": [],
+    //   "tasks": [
+    //     {
+    //       "type": "DownloadUrl",
+    //       "url": 
"https://download.geofabrik.de/europe/switzerland-latest.osm.pbf";,
+    //       "path": "data/data.osm.pbf"
+    //     },
+    //     {
+    //       "type": "ImportOpenStreetMap",
+    //       "file": "data/data.osm.pbf",
+    //       "database": config.database,
+    //       "databaseSrid": 3857
+    //     },
+    //   ]
+    // },
+    // {
+    //   "id": "openstreetmap-nodes",
+    //   "needs": ["openstreetmap-data"],
+    //   "tasks": [
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_nodes_clean.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_nodes_prepare.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_nodes_simplify.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_nodes_index.sql",
+    //       "database": config.database,
+    //     },
+    //   ]
+    // },
+    // {
+    //   "id": "openstreetmap-ways",
+    //   "needs": ["openstreetmap-data"],
+    //   "tasks": [
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_ways_clean.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_ways_prepare.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_ways_simplify.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_ways_index.sql",
+    //       "database": config.database,
+    //     },
+    //   ]
+    // },
+    // {
+    //   "id": "openstreetmap-relations",
+    //   "needs": ["openstreetmap-data"],
+    //   "tasks": [
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_relations_clean.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_relations_prepare.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_relations_simplify.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_relations_index.sql",
+    //       "database": config.database,
+    //     },
+    //   ]
+    // },
+    // {
+    //   "id": "openstreetmap-linestring",
+    //   "needs": ["openstreetmap-ways"],
+    //   "tasks": [
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_linestring.sql",
+    //       "database": config.database,
+    //     },
+    //   ]
+    // },
+    // {
+    //   "id": "openstreetmap-polygon",
+    //   "needs": ["openstreetmap-ways", "openstreetmap-relations"],
+    //   "tasks": [
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_polygon_prepare.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_polygon_index.sql",
+    //       "database": config.database,
+    //     },
+    //   ]
+    // },
+    // {
+    //   "id": "openstreetmap-boundary",
+    //   "needs": ["openstreetmap-linestring"],
+    //   "tasks": [
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_boundary_prepare.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_boundary_simplify.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_boundary_index.sql",
+    //       "database": config.database,
+    //     },
+    //   ]
+    // },
+    // {
+    //   "id": "openstreetmap-highway",
+    //   "needs": ["openstreetmap-linestring"],
+    //   "tasks": [
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_highway_prepare.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_highway_simplify.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_highway_index.sql",
+    //       "database": config.database,
+    //     },
+    //   ]
+    // },
+    // {
+    //   "id": "openstreetmap-railway",
+    //   "needs": ["openstreetmap-linestring"],
+    //   "tasks": [
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_railway_prepare.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_railway_simplify.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_railway_index.sql",
+    //       "database": config.database,
+    //     },
+    //   ]
+    // },
+    // {
+    //   "id": "openstreetmap-natural",
+    //   "needs": ["openstreetmap-polygon"],
+    //   "tasks": [
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_natural_prepare.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_natural_simplify.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_natural_index.sql",
+    //       "database": config.database,
+    //       "parallel": true
+    //     },
+    //   ]
+    // },
+    // {
+    //   "id": "openstreetmap-landuse",
+    //   "needs": ["openstreetmap-polygon"],
+    //   "tasks": [
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_landuse_prepare.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_landuse_simplify.sql",
+    //       "database": config.database,
+    //     },
+    //     {
+    //       "type": "ExecuteSql",
+    //       "file": "queries/osm_landuse_index.sql",
+    //       "database": config.database,
+    //       "parallel": true
+    //     },
+    //   ]
+    // }
   ]
 }


Reply via email to