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

adrabble pushed a commit to branch 3d-tiles
in repository https://gitbox.apache.org/repos/asf/incubator-baremaps-site.git

commit 7ce49ca0ec808b2e9678d103302114c591350df7
Author: Antoine Drabble <[email protected]>
AuthorDate: Wed Jan 4 16:26:54 2023 +0100

    Add the 3d tiles example
---
 _data/menu.yaml            |  7 ++++++
 examples/3d-tiles/index.md | 63 ++++++++++++++++++++++++++++++++++++++++++++++
 examples/index.md          |  4 +++
 3 files changed, 74 insertions(+)

diff --git a/_data/menu.yaml b/_data/menu.yaml
index 246fa4b..8617fa1 100644
--- a/_data/menu.yaml
+++ b/_data/menu.yaml
@@ -19,6 +19,13 @@ items:
         url: /examples/import-contour-into-postgis/
       - page: Serve vector tiles from PostGIS
         url: /examples/serve-vector-tiles/
+<<<<<<< Updated upstream
+=======
+      - page: Extrusion of vector tiles from OSM data
+        url: /examples/extrusion/
+      - page: Create 3d tiles and visualize them with Cesium
+        url: /examples/3d-tiles/
+>>>>>>> Stashed changes
       - page: Create an IP to location web service
         url: /examples/ip-to-location/
       - page: Create a geocoding web service
diff --git a/examples/3d-tiles/index.md b/examples/3d-tiles/index.md
new file mode 100644
index 0000000..fc637b7
--- /dev/null
+++ b/examples/3d-tiles/index.md
@@ -0,0 +1,63 @@
+---
+layout: default
+title: Create 3d tiles and visualize them with Cesium
+permalink: /examples/3d-tiles/
+---
+
+# Create 3d tiles and visualize them with Cesium
+
+In this tutorial, we demonstrate how to import OSM data into PostGIS and then 
serve them as 3d tiles to view them in Cesium.
+
+## Dataset
+
+OpenStreetMap (OSM) is a free and editable map of the world.
+It is maintained by a community of passionate volunteers in a way which is 
similar to Wikipedia.
+Every week, OpenStreetMap publishes a [full 
dump](https://planet.openstreetmap.org/) of its data in two flavours: a large 
XML file of about 90GB and a more compact binary file of about 50GB in the  
[Protocol Buffer Format](https://developers.google.com/protocol-buffers) (PBF).
+As processing such large files can take several hours, 
[Geofabrik](http://www.geofabrik.de/data/download.html) regularly publishes 
smaller extracts of OSM for specific regions.
+In this example we will use a tiny extract of OSM for 
[Liechtenstein](https://en.wikipedia.org/wiki/Liechtenstein), which is suitable 
for fast experiments.
+
+## Importing OpenStreetMap Data
+
+A workflow is a directed acyclic graph of steps executed by Baremaps.
+To download and import the sample OSM data in Postgres, execute the following 
[workflow](https://raw.githubusercontent.com/apache/incubator-baremaps/main/examples/openstreetmap/workflow.json).
+
+```
+baremaps workflow execute --file examples/tdtiles/workflow.json
+```
+
+Depending on the size of the OpenStreetMap file, the execution of this command 
may take some time.
+Eventually, the output produced by the command should look as follows.
+
+```
+[INFO ] 2023-01-04 16:06:53.098 [main] Execute - Executing the workflow 
workflow.json
+[INFO ] 2023-01-04 16:06:53.235 [pool-2-thread-1] DownloadUrl - Downloading 
https://download.geofabrik.de/europe/liechtenstein-latest.osm.pbf to 
liechtenstein-latest.osm.pbf
+[INFO ] 2023-01-04 16:06:53.820 [pool-2-thread-1] DownloadUrl - Finished 
downloading https://download.geofabrik.de/europe/liechtenstein-latest.osm.pbf 
to liechtenstein-latest.osm.pbf
+[INFO ] 2023-01-04 16:06:53.821 [pool-2-thread-2] ImportOpenStreetMap - 
Importing liechtenstein-latest.osm.pbf into 
jdbc:postgresql://localhost:5432/baremaps?&user=baremaps&password=baremaps
+[INFO ] 2023-01-04 16:06:53.825 [pool-2-thread-2] HikariDataSource - 
HikariPool-1 - Starting...
+[INFO ] 2023-01-04 16:06:53.898 [pool-2-thread-2] HikariPool - HikariPool-1 - 
Added connection org.postgresql.jdbc.PgConnection@6e426130
+[INFO ] 2023-01-04 16:06:53.899 [pool-2-thread-2] HikariDataSource - 
HikariPool-1 - Start completed.
+[INFO ] 2023-01-04 16:06:55.743 [pool-2-thread-2] ImportOpenStreetMap - 
Finished importing liechtenstein-latest.osm.pbf into 
jdbc:postgresql://localhost:5432/baremaps?&user=baremaps&password=baremaps
+[INFO ] 2023-01-04 16:06:55.743 [pool-2-thread-3] ExecuteSql - Executing 
indexes.sql
+[INFO ] 2023-01-04 16:06:56.623 [pool-2-thread-3] ExecuteSql - Finished 
executing indexes.sql
+[INFO ] 2023-01-04 16:06:56.623 [main] Execute - Finished executing the 
workflow workflow.json
+```
+
+## Serve 3d tiles to a Cesium web application
+
+In order to generate 3d tiles Baremaps uses [JTS Delaunay 
Triangulation](https://locationtech.github.io/jts/javadoc/org/locationtech/jts/triangulate/DelaunayTriangulationBuilder.html)
 to
+triangulate vector tiles into 3d meshes. Then it uses 
[jgltf](https://github.com/javagl/JglTF) to generate a GLB that can be embedded 
into a 3d tile.
+
+To start the 3d tiles server, use the following command:
+
+```
+baremaps tdtiles serve --database 
jdbc:postgresql://localhost:5432/baremaps?user=baremaps&password=baremaps
+```
+
+Well done, a local http server should have started.
+You can now visualize the 3d tiles in your browser 
([http://localhost:9000/](http://localhost:9000/))!
+Notice that the changes in the configuration files are automatically reloaded 
by the browser.
+
+
+## Conclusion
+
+In this tutorial, we learnt how to import OpenStreetMap data in PostGIS and 
then serve 3d tiles with Apache Baremaps.
\ No newline at end of file
diff --git a/examples/index.md b/examples/index.md
index ceddea0..cbcd783 100644
--- a/examples/index.md
+++ b/examples/index.md
@@ -21,6 +21,10 @@ For the creation of custom vector tiles you can follow these 
guides:
 - The [NaturalEarth](/examples/import-naturalearth-into-postgis/) example 
shows how to produce low resolution vector tiles.
 - The [Contour](/examples/import-contour-into-postgis/) example shows how to 
produce contour lines from a digital elevation model.
 
+For the creation of 3d tiles you can follow this guide:
+
+- The [3d Tiles](/examples/3d-tiles/) example shows how to create 3d tiles 
from OSM data and serve them to a Cesium web application.
+
 For the creation of an IP to location service follow this guide:
 
 - The [IP to location](/examples/ip-to-location/) example shows how to create 
and serve an IP to location service in a simple web application.

Reply via email to