Kreiranje izometrijskih zgrada (QGIS3)

Doprinos: Stiven Kim

OpenStreetMap (OSM) je globalni skup podataka o putevima, granicama, zgradama i još mnogo toga prikupljen putem kraudsorsinga. Sadrži rastuću kolekciju otisaka zgrada širom sveta, a mnoge od njih takođe imaju informacije o visini. Iako je tačnost podataka o visini zgrada poznato teška za validaciju za analizu, možemo koristiti QGIS izraze da bismo kreirali zabavno umetničko izometrijsko prikazivanje iz ovih podataka.

Pregled zadatka

Preuzećemo podatke o otiscima zgrada iz OSM-a za centar Toronta i kreirati izometrijsku mapu visina zgrada.

../../_images/output3.png

Dobijte podatke

Preuzimaćemo podatke sa OpenStreetMap(OSM) koristeći QuickOSM dodatak. Pogledajte Pretraživanje i preuzimanje podataka OpenStreetMap-a (QGIS3) za uvod u QuickOSM dodatak. Kada instalirate dodatak, možete nastaviti sa uputstvima ispod da biste dobili podatke za vaš region.

Белешка

Ovaj tutorijal je posebno dizajniran za rad sa OSM podacima izdvojenim iz QuickOSM dodatka. Izraz za visinu ne radi sa OSM datotekama planeta ili izdvojenim podacima sa other_tags. U tim slučajevima, prvo morate izdvojiti nivoe i visine zgrada pre nego što ih upotrebite.

  1. Otvorite QGIS. Prvo ćemo učitati osnovnu mapu. Iz panela Browser, pomerite se nadole i pronađite sloj pločica XYZ Tiles ‣ OpenStreetMap. Prevucite ga i otpustite na glavno platno. Zumirajte na region koji vas zanima. Uverite se da je region u potpunosti pokriven obimom mape.

../../_images/data115.png
  1. Pokrenite QuickOSM dodatak iz Vector ‣ QuickOSM ‣ QuickOSM….

../../_images/data25.png
  1. U kartici Brzi upit, unesite building kao Ključ. Promenite Unutar u Opseg platna. Ovo će preuzeti sve zgrade u trenutnom opsegu platna. Proširite odeljak Napredno, zatim opozovite izbor Tačke, Linije i Višelinijski nizovi. Ovo bi trebalo da ostavi izabrane Čvorovi, Putevi, Relacije i Višepoligoni. Izaberite Pokreni upit. Zatvorite prozor kada se mapa učita.

../../_images/data35.png
  1. All the available building footprints in the canvas extent will be loaded in a new layer building. You can continue with the data, or select a subset of the buildings. For this tutorial, we will select all buildings in your region of interest. Click the Select Features by Area or Single Click button on the Selection Toolbar. You can hold the left mouse button and draw a rectangle to select the required buildings. You can also hold the Shift key and click on the polygons to select them.

../../_images/data45.png
  1. Kada su sve potrebne zgrade izabrane, kliknite desnim tasterom miša na sloj „zgrada“ i izaberite Izvoz ‣ Sačuvaj izabrane elemente kao….

../../_images/data54.png
  1. U dijalogu Sačuvaj vektorski sloj kao…, kliknite na dugme pored Ime datoteke i pretražite fasciklu na vašem računaru. Unesite Ime datoteke kao osm_buildings.gpkg i Ime sloja kao buildings. Preuzete zgrade se nalaze u CRS EPSG:4326 WGS84. Ovo je geografski CRS sa jedinicama u stepenima. Možemo izabrati Projektovani CRS koji će nam omogućiti da koristimo linearne jedinice mere kao što su metri. Kliknite na padajući meni za Izaberite CRS i izaberite Projekat CRS: EPSG:3857 - WGS84 / Pseudo-Merkator. Kliknite na U redu.

../../_images/data64.png
  1. Izabrane zgrade će biti ponovo projektovane i sačuvane u novoj GeoPackage datoteci.

../../_images/data74.png

Radi lakšeg snalaženja, možete direktno preuzeti kopiju zgrada u centru Toronta odozdo:

osm_buildings.gpkg

Izvor podataka [OPENSTREETMAP]

Procedura

  1. Pronađite datoteku osm_buildings.gpkg u QGIS pregledaču i proširite je. Izaberite sloj buildings i prevucite ga na platno.

    ../../_images/1106.png
  2. Kliknite na Otvori panel za stilizovanje slojeva i prebacite se sa Jedan simbol na 2.5 D.

    ../../_images/2102.png
  3. Kliknite na dugme e pored Visina.

    ../../_images/340.png
  4. U Kreator izraza, unesite sledeći izraz. Ovaj izraz primenjuje množitelj na prvo polje koje nije null iz building:levels i height. Ako su oba null, onda se koristi podrazumevana visina od 20 metara. Imajte na umu da su ovo preuveličane visine za vizuelizaciju u većim razmerama.

coalesce("building:levels"*10, "height"*2, 20)
../../_images/423.png
  1. Promenite Ugao na 135 stepeni.

    ../../_images/520.png
  2. Isključite polja za potvrdu Shade walls based on aspect i Shadow. Primenićemo sopstvene boje. Kliknite na padajući meni za izbor renderera.

    ../../_images/620.png
  3. Promena sa 2.5 D nazad na Jedan simbol.

    ../../_images/719.png
  4. U prozoru Symbol, primetite da postoje dva generatora geometrije, svaki sa tipom sloja Simple Fill. Prvi Simple Fill je gornja strana svakog bloka, dok je drugi Simple Fill bočna strana. Kliknite na prvi Simple Fill da biste promenili boju gornje strane. Kliknite na dugme Data define override za Fill color i izaberite Edit… u meniju.

    ../../_images/819.png
  5. Ovim se otvara dijalog Kreator izraza za boju popunjavanja. Unesite sledeći izraz. Ovaj izraz primenjuje Spektralnu rampu boja na podatke na osnovu njihove udaljenosti od centra mape.

ramp_color('Spectral',
    scale_linear(
        distance(@geometry,@map_extent_center),
        0,@map_extent_width/6,
        0,1
    )
)
../../_images/919.png
  1. Kliknite na dugme Data define override za Fill colour i izaberite Copy… u meniju.

    ../../_images/1025.png
  2. Kliknite na dugme Data define override za Stroke color i izaberite Paste… u meniju da biste primenili isti izraz.

    ../../_images/1128.png
  3. Sada kliknite na drugo Jednostavno popunjavanje da biste promenili strane. Možda ćete morati da se pomerite nadole da biste to uradili. Kliknite na padajući meni za Tip sloja simbola.

    ../../_images/1226.png
  4. Promenite Tip sloja simbola sa Jednostavno popunjavanje na Gradientno popunjavanje. Dva selektora boja pored Dve boje predstavljaju gornju i donju boju gradijenta. Kliknite na dugme Prekoračivanje definisanja podataka za gornju boju.

    ../../_images/1324.png
  5. Izaberite Edit i unesite sledeći izraz. Ovo je isti izraz koji smo koristili za boju krova, ali podešava transparentnost boje pomoću funkcije set_color_part().

    set_color_part(
      ramp_color('Spectral',
          scale_linear(
              distance(@geometry,@map_extent_center),
              0,@map_extent_width/6,
              0,1
          )
      ), 'alpha',100)
    
    ../../_images/1422.png
  6. Kliknite na mali crni trougao donjeg selektora boja i označite polje Transparent.

    ../../_images/1519.png
  7. Pre nego što napustimo Panel za stilizovanje slojeva, transformišimo sloj da bismo upotpunili izometrijski izgled. Proširite odeljak Renderovanje slojeva i označite Efekti crtanja. Kliknite na zvezdicu Prilagodi efekte sa desne strane.

    ../../_images/1618.png
  8. Kliknite na padajući meni pored Tip efekta.

    ../../_images/1719.png
  9. Promenite Tip efekta sa Izvor na Transformacija. Za Smicanje X,Y, unesite -0.2 i -0.2 respektivno.

    ../../_images/1816.png
  10. Unesite 45 za Rotacija. Izađite i zatvorite Panel za stilizovanje slojeva.

    ../../_images/1913.png
  11. Trebalo bi da vidite šareni prikaz gradnje poligona u izometrijskom prikazu. Slobodno eksperimentišite sa izrazima za visinu, ugao, boje popunjavanja i tako dalje.

    ../../_images/2013.png

If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)