kopia lustrzana https://github.com/onthegomap/planetiler
				
				
				
			
		
			
				
	
	
		
			108 wiersze
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			108 wiersze
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
| @startuml
 | |
| !includeurl https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/ce5a3ea16aee1b07487f9960633057d102b626a6/C4_Container.puml
 | |
| skinparam WrapWidth 80
 | |
| skinparam ranksep 10
 | |
| skinparam dpi 200
 | |
| 
 | |
| LAYOUT_LANDSCAPE()
 | |
| HIDE_STEREOTYPE()
 | |
| 
 | |
| skinparam rectangle {
 | |
|    BorderColor<<diagram>> transparent
 | |
|    BackgroundColor<<diagram>> transparent
 | |
| }
 | |
| sprite slicing slicing.png
 | |
| 
 | |
| Boundary(input, "**1) Process Input Files**") {
 | |
|   Boundary(simple, "Read Simple Sources", "Natural Earth & Shapefiles") {
 | |
|     System(sr, "Reader")
 | |
|   }
 | |
| 
 | |
|   Boundary(osm, "Read OpenStreetMap Data", ".osm.pbf files") {
 | |
|     System(profile2, "Profile")
 | |
|     Boundary(pass1, "pass 1") {
 | |
|       System(osm1n, "Nodes")
 | |
|       System(osm1w, "Ways")
 | |
|       System(osm1r, "Relations")
 | |
|       ' enforce ordering
 | |
|       osm1r -[hidden]> osm1w
 | |
|       osm1w -[hidden]> osm1n
 | |
|     }
 | |
|     BiRel_Up(osm1r, profile2, " ")
 | |
|     SystemDb(osmnl, "Node locations")
 | |
|     SystemDb(osmmem, "Relation Members")
 | |
|     SystemDb(osmmp, "Multipolygon geometries")
 | |
|     SystemDb(osmrl, "Relation Info")
 | |
|     Boundary(pass2, "pass 2") {
 | |
|       System(osm2n, "Nodes")
 | |
|       System(osm2w, "Ways")
 | |
|       System(osm2r, "Relations")
 | |
|       ' enforce ordering
 | |
|       osm2r -[hidden]> osm2w
 | |
|       osm2w -[hidden]> osm2n
 | |
|     }
 | |
|     Rel(osm1n, osmnl, " ")
 | |
|     Rel(osm1r, osmmem, " ")
 | |
|     Rel(osm1r, osmrl, " ")
 | |
| 
 | |
|     Rel(osmnl, osm2w, " ")
 | |
|     Rel(osmmem, osm2w, " ")
 | |
|     Rel(osmrl, osm2w, " ")
 | |
|     Rel_Left(osm2w, osmmp, " ")
 | |
|     Rel(osmmp, osm2r, " ")
 | |
|   }
 | |
| 
 | |
|   Boundary(workers, "Process Workers", "1 per core") {
 | |
|     System(profile, "Profile")
 | |
|     System(render, "Render Vector Tile Features")
 | |
|   }
 | |
| 
 | |
|   ' slicing diagram
 | |
|   rectangle "<$slicing{scale=0.5}>" as slicing <<diagram>>
 | |
|   slicing -[hidden]> render
 | |
| 
 | |
|   System(writer, "Writer")
 | |
| 
 | |
|   Rel(sr, profile, " ")
 | |
|   Rel(osm2n, profile, " ")
 | |
|   Rel(osm2w, profile, " ")
 | |
|   Rel(osm2r, profile, " ")
 | |
| 
 | |
|   Rel(profile, render, " ")
 | |
|   Rel(render, writer, " ")
 | |
| }
 | |
| 
 | |
| Boundary(sort, "**2) Sort Features**") {
 | |
|     SystemDb(fc1, "Chunk")
 | |
|     SystemDb(fc2, "Chunk")
 | |
|     SystemDb(fc3, "Chunk")
 | |
|     ' enforce ordering
 | |
|     fc1 -[hidden]> fc2
 | |
|     fc2 -[hidden]> fc3
 | |
|     System(sorters, "Sort Workers\n1 per core")
 | |
|     BiRel_Up(fc3, sorters, " ")
 | |
| }
 | |
| 
 | |
| Rel(writer, fc1, " ")
 | |
| Rel(writer, fc2, " ")
 | |
| Rel(writer, fc3, " ")
 | |
| 
 | |
| Boundary(mbtiles, "**3) Emit Vector Tiles**") {
 | |
|     System(mbtread, "Read Features\nand group into tiles")
 | |
|     System(mbtprocess, "Encode & gzip\n1 worker per core")
 | |
|     System(mbtwriter, "Batched Writer")
 | |
| }
 | |
| 
 | |
| SystemDb(mbtilesdb, "MBTiles", "x,y,z,data")
 | |
| 
 | |
| Rel(fc1, mbtread, " ")
 | |
| Rel(fc2, mbtread, " ")
 | |
| Rel(fc3, mbtread, " ")
 | |
| Rel(mbtread, mbtprocess, " ")
 | |
| Rel(mbtprocess, mbtwriter, " ")
 | |
| Rel(mbtwriter, mbtilesdb, " ")
 | |
| 
 | |
| 
 | |
| @enduml
 | |
| 
 |