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
 | 
						|
 |