28
strana 1 Izrada i korišcenje upita Izrada i korišcenje upita sa TNTmips ® TNTedit TNTview ® Getting Started U P I T I

T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 1

Izrada i korišcenje upita

Izrada i korišcenjeupita

sa

TNTmips®

TNTedit™

TNTview®

Getting StartedUPITI

Page 2: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 2

Izrada i korišcenje upita

Pre nego što pocnete

Ukoliko nemate kopiju ove brošure u boji, možda ce biti teško da utvrditeznacajne tacke na nekim ilustracijama. Možete štampati ili citati ovu brošuruu boji sa web sajta MicroImages-a. Web site je takode i Vaš izvor najnovijihGetting started brošura na druge teme. Možete download-ovati vodic zainstalaciju, ogledne podatke i najnoviju verziju TNTlite-a.

http://www.microimages.com

Ova brošura Vas upoznaje sa upitima baza podatka TNT proizvoda i uci Vas kakoda napravite upite da bi koristili informacije o atributima zakacenim za Vaševektorske, CAD i TIN objekte. Na prvi pogled ovaj proces može izgledatikomplikovan, ali ovaj set korak-po-korak vežbi, vodi Vas kroz zadate strukture isintakse upita, napredujuci od jednostavnih primera do upita sa višestrukim uslovnimizjavama i procesnim petljama.

Potrebno predznanje Pretpostavlja se da ste uradili vežbe iz brošure GettingStarted:Displaying Geospatial Data i Getting Started:Navigating. Te vežbe vasupoznaju sa osnovnom koncepcijom i veštinama koje ovde nisu ponovo pokazane.Za bilo koju proveru koja je potrebna, konsultujte ove brošure i TNT mips-ovreferentni prirucnik.

Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke kojise distribuiraju zajedno sa TNT CD proizvodima, koje možete download-ovati saMicroImage’s web sajta. Ogledne fajlove možete pronaci u zbirci podataka QUERY.Obezbedite kopiju oglednih podataka na hard disku tako da sacuvane promenemožete kasnije koristiti.

Dodatna dokumentacija Ova brošura predstavlja samo upoznavanje sakorišcenjem baza podataka upita. Konsultujte oblast “Display Vector, CAD andTIN by Query” u poglavlju Display u TNT referentnom prirucniku radi višeinformacija o Querz Editor-u, i Appendix 2: Database Queries za potpunoupucivanje o komandama i funkcijama upita.

TNT mips® i TNT lite® TNT mips postoji u dve verzije: profesionalna i besplatnaTNT lite verzija. Ovoj brošuri odgovaraju obe verzija. Ako niste kupili profesionalnuverziju (koja zahteva hardverski kljuc), TNT mips radi u TNT lite modu, kojiogranicava velicinu objekta i ne dozvoljava izvoz podataka.

Upiti o bazama podataka se takode mogu koristiti da prikažu geoprostorne objekteu TNTview-u i da selektuju elemente za editovanje u TNT edit-u. Sve vežbe u ovojbrošuri mogu da se urade u TNT lite verziji uz pomoc obezbedenih uzorakageopodataka.

Randall B. Smith, Ph.D., 17 September 2001

Page 3: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 3

Izrada i korišcenje upita

Dobrodošli u izradu i korišcenje upita

KORACI? obezbedite kopiju iz

zbirke primeraka uQUERY kolekcijipodataka na Vašem Harddisku

? pokrenite TNT mips

? pokrenite processSpatial Data Display iselektujte New 2D Groupsa palete sa alatkama

Vežbe na stranama 4-9upoznaju nas sa strukturomjednostavnog upita,operacijama poredenja inekim korisnim alatima zagradenje i proveru upita.Stranice 10-17 obradujustrukturu upita ukljucujucisložene izjave, upotrebupromenljivih, komentare ikorišcenje upita radi provereprikacenih upisa bazepodataka. Stilizovanjeskriptom nalazi se na 18-19strani, zajedno saupotrebom uslovne “if-then-else” konstrukcije. Primeriupita bazirani na prostornim itopološkim atributimavektorskih objekata, nalazese na stranama 20-23.Strane 24-25 objašnjavajukako se kreira izracunavanjepolja u tabelama bazapodataka, dok su na 26-27strani dati primeri upitakorisnih za editovanjevektorskih objekata.

TNTmips omogucava veliku fleksibilnost prilikomkorišcenja atributa baze kao što su vektori, CAD, iTIN objekti za kontrolu prikaza i štampe objekata iliza selektovanje objekata radi korišcenja u razlicitimprocesima. Bazni upiti omogucavaju najkompletnije iraznovrsne nacine za korišcenje ovih atributa.

Bazni upit je set instrukcija koji definišu odredenekriterijume koji se koriste za izdvajanje zapisa iz bazepodataka. Specificni prostorni elementi (kao što sulinije ili poligoni) za koje su ti zapisi “prikaceni” sutada automatski selektovani za tekuci proces. Upitodgovara specificnim tipovima elemenata i tada jemoguce istovremeno korišcenje odvojenih upita zarazlicite tipove elemenata u objektu. U Spatial DataDisplay, opcija Style By Script dozvoljava korisnikuda oznaci prikazani parametar za selektovaneelemente na osnovu atributa. Informacije o atributimakoje razmatrate u upitima mogu biti kvalitativni (kaoime klase) ili kvantitativni (kao vrednost žetve).

Upiti moraju da koriste standardnu “gramatiku isintaksu” da bi TNTmips mogao to da razume.Programski jezik za formiranje upita koji koristiTNTmips je Spatial Manipulation Language (SML).

Korisnik slaže upite u prozoru Query Editor. Ovajeditor poseduje menije koji olakšavaju konstrukcijuvalidnih upita tako sto omogucava izbor polja iz tabelebaze podataka i ubacuje simbole i funkcije iz listprozora sa pravilnim sintaksama. Query Editor takodeobezbeduje kontrolu sintakse da bi se olakšalonalaženje grešaka pre primene upita.

Vežbe u ovoj brošuri koriste upite za selektovanje ilioblikovanje elemenata za prikaz u vektorskimobjektima. Treba imati na umu da upiti mogu bitikorišceni u svakom procesu koji selektujekomponente elemenata u vektorskom, CAD, ili TINformatu. Takode je moguce koristiti upite u pojedinimrasterskim procesima za selektovanje vrednosti celijakod procesiranje.

Page 4: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 4

Izrada i korišcenje upita

Selektovanje upitom jednog poljaKORACI? pritisnite na Add

vector dugme iselektujte Add VectorLayer iz padajucegmenija

? selektujteCBSOILS_LITEobjekat iz CB_SOILQProject File u QUERYkolekciji podataka

? u Vector Object DisplayControls prozoru,proveritida li je Select opcija naLines panelu postavljenana All

? postaviti Select opciju naLabels panelu na None

? proveriti da li je Styleopcija na Polygonspanelu postavljena na ByAttribute

? postavite Select opcijuna Polygons panelu naBy Query i kliknute nadugme Specify

? u prozoru Query Editorunesite sledeci tekstYIELD.WHEAT > 35

? kliknite na OK u QueryEditor prozoru

Attribute ComparisonOperator

Value

U upitu je potrebno definisati bazu koja sadrži tabelesa informacijama, odnosno specifikovati odredenopolje. Ova “pozicija atributa” informacija mora bitiuneta u formi TABLE.FIELD. Vrednost u ovom

primeru je jednostavna numerickavrednost, dok je komparativni operator“veci od” ( > ).

Pošto je selekcija podešena na All, iscrtane su svespoljnje linije poligona tla. Poligoni selektovani upitomsu popunjeni bojama i uzorci boja su bazirani na tipu tla,a prethodno su podešeni za prikaz By Attribute. Kriterijumza selekciju razlicitih tipova tla je prinos pšenice.Neselektovani poligoni ostaju nezapunjeni.

Najjednostavniji vid upita je selektovanje specificnihtipova prostornih elemenata (poligoni, linije i tacke uvektorskoj slici) na osnovu vrednosti pojedinihatributa iz baze. U ovoj vežbi je potrebno unetijednostavne upite koji izdvajaju poligone tla na mapi,u vektorskom objektu prikaza.

Svaki tip zemljišta ima pridruženu vrednostmaksimalne kolicine roda za više žetvi. Upit selektujepoligone za koje je potencijalna žetva roda pšeniceveca od 35 bušela po jutru. Upit je u sledecoj formi:

? pritisnite na OK u VectorObject Display Controlsprozoru da bipodešavanja bilaprihvacena

Page 5: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 5

Izrada i korišcenje upita

Korišcenje Insert Operator opcije

Poligoni zemlje selektovani prethodnim upitompripadaju razlicitim klasama tipova tla. Moguce jepreraditi kriterijum selekcije tako da upit selektujesamo one poligone sa potencijalnim rodom pšecniceod 38 bušela po jutru. Da bi se odredio ovaj kriterijumselekcije, koristiti znak “= =“ (dupli znak ==) u upitu.Meni opcija Insert/ Operator u Query Editor-u otvaraInsert operator prozor, koji nudi operatore sa izborneliste i umece ih u upit na trenutnu poziciju kursora.

KORACI? kliknite na Vector

ikonu u Layerkoloni ikona da bi otvoriliVector Object Displayprozor

? pritisnite Select:[Specify]u Polygon Optionspanelu

? oznacite “>35” u QueryEditor prozoru i pritisnutiDelete

? otvorite Insert meni iselektujte Operator

? u Insert Operatorprozoru, oznacite “==“operator; kliknite na[Insert], a zatim [Close];

? u Query Editor prozoruuneti 38 desno odoperatora, a potom OK

? pritisnite OK u VectorObject Display Controlsprozoru da bi svevrednosti bile prihvacenei prikazane

Za manji broj klasa zemljišta važe strožijikriterijumi u preispitanom upitu.

Izabrati operator izInsert menija da biotvorili Insert Operatorprozor...

...koji daje listusvih dostupnihoperatora upita

Selektujte operator“jednako”.

Tekstualno polje opisujefunkciju selektovanogoperatora.

Pritisnite [Insert]...

...da unesete operator uupit.

Ukucajtevrednostkoja seslaže.

Page 6: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 6

Izrada i korišcenje upita

Korišcenje Insert Field opcijeKORACI? otvorite Vector Object

Display Controls prozor iQuery Editor prozor

? izaberite YIELD.WHEATu postojecem upitu, apotom <Delete>

? otvoriteInsert Menu iizberite Field

? u Insert Field prozoru,kliknite na YIELD u Tablelist-u

? pritisnite OATS u Fieldlisti, a zatim [Insert]

? kliknite [Close] u InsertField prozoru

? promenitevrednost nadesnoj straniupita na 43 izatim kliknite naOK

? pritisnite OK uVector ObjectDisplay Controlsprozoru

Ovim upitom je omogucena selekcijanekoliko istih klasa tla koje su vecselektovane prethodnim upitom (strana 4).

Izaberite Field iz menijaInsert da bi otvoriliprozor Insert Field...

...koji daje spisak svihdostupnih tabela bazepodataka za selektovanitip elementa.

Izabiranjem Table se istoprikazuje lista njenih polja.

Izborom polja...

...kreira seTABLE.FIELDunos.

pritisnite na Insert dugme...... da unesete TABLE.FIELD unos uVaš upit.

Promenite vrednost na desnoj straniizjave na 43.

Moguce je koristiti Insert/Field meni opcije u QueryEditor-u koja služi kao pomoc prilikom izrade ili izmeneupita. Ova opcija otvara Insert Field prozor u komese odabira Table ili Field i automatski ubacujeinformacija o atributima lokacije u upit u pravilnomobliku.

Page 7: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 7

Izrada i korišcenje upita

Upiti String poljaJezik upita korišcen u TNTmips-u je osetljiv navelicinu slova. Ukoliko tabela CLASS sadrži poljeClass, unos TABLE.FIELD mora biti CLASS.Class;ukoliko se unese kao CLASS.CLASS upitni procesnece pronaci polje i prijavice grešku. Korišcenje InsertField procedure ce pomoci u izbegavanju ovakvogtipa problema.

Polja iz baze koja su korišcena u upitu do sada susadržala numericke vrednosti. Tabela YIELD zaCBSOILS_LITE takode sadrži polja koja se zovuSYMBOL sa tipom zemljišta oznacenog u stringformatu. Termin simbol je skracenica za “karakterstring“, što znaci da to polje nije oznaceno numerickii da može da sadrži tekst i ostale nenumerickekaraktere. String polja mogu sadržati i brojeve (npr.CLASS1), ali se oni citaju kao karakakter a ne kaobroj. String vrednosti u upitu moraju biti zatvoreneznacima navoda, a takode su osetljiva na velicinuslova (mala/velika slova).

KORACI? otvorite Vector Object

Display Controls prozor iQuery Editor prozor

? selektujte YIELD.OATS upostojecem upitu ipritisnite <Delete>

? upotrebite Insert Fieldproceduru i uvežiteYIELD.SYMBOL na levustranu upita

? promenite vrednost nadesnoj strani upita u"KaB" (ukljucujucinavodnike), zatim kliknite[OK]

? pritisnite na [OK] uprozoru Vector ObjectDisplay Controls

Selektovani poligoni tla kojipripadaju klasi KaB.

Postavite string vrednost pod navodnike.

Polje SYMBOL sadrži string vrednosti.

Page 8: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 8

Izrada i korišcenje upita

Provera sintakse formiranog upitaKORACI? otvorite prozore Vector

Object Display Controlsi Query Editor

? rucno promenite levustranu postojeceg upitau CLASS.CLASS (svavelika slova)

? izaberite Check iz menijaSyntax

? oznaciti poruku o grešci ikliknuti OK u Messageprozoru

? Promenite levu stranuupita u CLASS.Class

? izaberite Check iz menijaSyntax

? opaziti “Syntax OK “poruku

U složenijim upitima, sintaksicka greška može bitirezultat ako nešto nedostaje posle tacke gde jekursor postavljen, kao što su zatvorene zagrade ili‘end’ izjava pocetka / kraja petlje.

U ovom primeru kursor jepostavljen na krajunepravilnog TABLE.FIELDunosa

Poruka“Syntax OK” sejavlja ako nemagrešaka.

Pravila koja se ticu korišcenja velikih slova inavodnika za string vrednosti su primeri receniceTNTmips jezika. Sintaksa upita je proverenaautomatski kada se pritisne [OK] za izvršenje upita ikada se izabere Close iz File menija da bi se zatvorioQuery Editor. (Ukoliko upit sadrži sintaksicku grešku,kada pokušate da zatvorite Query Editor, prozor ceostati otvoren i prikazace se poruka o grešci).

Moguca je provera sintakse upita prenjegovog izvršenja biranjem Check saSyntax menija u Query Editor-u. Tako jemoguce naci propuštene zagrade,pogrešno napisane upite ili ostale simboleili reference ka nepostojecim poljima ubazi. Proces pocinje proverom na pocetkuupita. Ukoliko nema sintaksickih gresaka,na dnu ce se pojaviti poruka Query Editor-

a “Syntax OK”. Ako je otkrivena sintaksicka greškakursor ce biti postavljen na kraju prve komponenteupita, koju racunar nije mogao da interpretira i porukao grešci ce biti u dnu Query Editor-a. U ovom primeruprovera sintakse je otkrila da ne postoji polje u bazisa imenom CLASS u tabeli CLASS, tako da je kursorpostavljen na kraju CLASS.CLASS upisa. Nakonispravke sintaksicke greške, moguce je koristiti Syntaxopciju za dalju proveru u preostalom tekstu.

Page 9: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 9

Izrada i korišcenje upita

Izracunavanje u upitimaKORACI? izabrati New iz File

menija

? koristiti Insert procedurui/ili rucno kreirati sledeciupit :

YIELD.OATS == YIELD.WHEAT +

? izabrati Save As iz Filemenija, zatim *.QRY izmenija

? izabrati File Selectionprozor da bi se dalo imenovom fajlu koji sadržiupit

? pritisnuti [OK] u QueryEditor prozoru

? kliknuti [OK] u VectorObject Display Controlsprozoru

Obicno ce upit raditi samosa specificnim objektomzbog odnosa sa jedinstvenimpoljem baza podataka. Akoimate niz objekata saidenticnim formatima bazapodataka, ili se upit odnosisamo na polja u standardnimtabelam a koje je napravioTNTmips, onda možetekoristiti isti upit za bilo kojiobjekat.

Vrednosti na desnoj strani upita mogu takode bitiobezbedene poljem iz baze ili izracunavanjem poljaiz baze. Kalkulacija u upitu moze da koristi standardnearitmeticke operacije: sabiranje (+), oduzimanje (-),množenje (*) i deljenje (/). Moguce je uneti simboloperacije iz Insert operatora. Opcija Insert/Functionomogucava pristup trigonometrijskim iostalim matematickim funkcijama kojetakode mogu biti upotrebljene u upitima.Primer upita korišcen u ovoj vežbi izdvaja poligonezemljišta za koje je potencijalni rod ovsa tacno 5bušela po jutru veci od roda pšenice.

Do sada ste verovatno primetili da su poslednji upitkorišcen za odredeni objekat i tip elementa automatskipostavljeni sa objektima i otvoreni sledeci put kadase izabere ista By Query opcija. Ukoliko se želi dase postavi nekoliko upita za isti objekat za buducuupotrebu, moguce je koristiti Save i Save As opcije uQuery Editor meniju. Ove opcije omogucavajusnimanje upita koji su trenutno prikazani u QueryEditor prozoru kao tekst fajl sa .QRY ekstenzijom ilikao tekst objekat u Project File-u. Da bi se opozvaosnimljeni upit, koristiti opciju Open u File meniju.

Izaberite RVC Object da sacuvate upitkao tekstualni objekat u Project File-u.

Page 10: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 10

Izrada i korišcenje upita

Spajanje upitaKORACI? otvoriti prozore Vector

Object Display Controls iQuery Editor

? izaberite New iz menijaFile

? koristeci Insert procedurui/ili rucno kreirati sledeciupit:

? kliknuti OK u prozoruQuery Editor i u VectorObject Display Controlsprozoru

? Ponoviti gornje korakeali, u upitu, “or” ubacitiumesto “and”

YIELD.WHEAT > 34 and YIELD.OATS >

Svaki od upita korišcenih u prethodnim lekcijamaupotrebljavaju jednu selekciju poredjenja za izborpoligona za prikaz. U mnogim slucajevima bicepotrebno izdvajanje elemenata koristeci kombinacijuviše kriterijuma. Serija selekcija poredenja u upitumora biti povezana jedna sa drugom jednim ili višelogickih operatora kao što su “and”, “or” i “not”. Ovioperatori moraju biti uneti malim slovima. Moguce jelogicke operatore uneti u upit korišcenjem Insert

Operator procedure.

Kada su dva poredenja povezanalogickim “and” operatorom, oba poredenja moraju bitiistinita u cilju izrade citavog istinitog upita iselektovanja elementa. Kada su dva poredenjapovezana logickim “or” operatorom upit je istinit akoje jedan ili drugi upit istinit. Elementi koji ispunjavajubilo koji kriterijum su selektovani.

Poligoni za koje je potencijalni prinospšenice veci od 34 bušela po jutru, ipotencijalni prinos ovsa veci od 40 bušelapo jutru.

Poligoni za koje je bio potencijalni prinospšenice veci od 34 bušela po jutru, ilipotencijalni prinos ovsa veci od 40 bušela pojutru.

Dugacak upit može da se nastavi u sledecoj liniji,kako bi pojasnili da su obe linije deo jedne izjavemožete uvuci drugu liniju.

Page 11: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 11

Izrada i korišcenje upita

Korišcenje “not equal to” operatoraKORACI? otvorite prozore Vector

Object Display Controls iQuery Editor

? izaberite New iz menijaFile

? koristeci Insert procedurui/ili rucno kreirati sledeciupit :

YIELD.WHEAT <> 0 andYIELD.OATS * 3.25 >= YIELD.WHEAT *

? kliknite [OK] u QueryEditor prozoru

? kliknite [OK] u VectorObject Display Controlsprozoru

Vecina tipova zemljišta u Crow Butte podrucju imajuveci potencijal roda ovsa nego pšenice, ali pšenicaobicno donosi veci prihod kada se žetva proda.Pretpostavimo da je cena žetve po bušelu 3.25$ zaovas i 4.00$ za pšenicu. Ovaj primer upita je korišcenda bi izdvojio tip zemljišta u kome je potencijal rodapo jutru ovsa veci ili jednak rodu pšenice (potencijalniprinos u bušelima po jutru pomnoženo sa cenom pobušelu).

Ovaj upit je komplikovan zbogcinjenice da je potencijalnirod za zemljište koje ne možebiti kultivisano oznaceno 0 i takav tip zemljišta bizadovoljio poredenje u drugoj liniji upita. Prva linijaupita iskljucuje tip zemljišta sa nultom žetvom iilustruje korišcenje “not equal to” operatora (<> ili !=).Ovaj iskaz selektuje poligone za koje potencijalni rodpšenice nije jednak 0. Samo takvi poligoni se koristeza poredenje cena u drugoj liniji.

Poligoni za koje bi prinos ovsa doneo vecucenu po jutru od pšenice, pod pretpostavkomda se omoguci potencijalni prinos i stanjecena po bušelu.

Page 12: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 12

Izrada i korišcenje upita

Korišcenje komentara i promenljivihKORACI? otvorite prozore Vector

Object Display Controls iQuery Editor

? izaberite New iz menijaFile

? koristeci Insert procedurui/ili rucno kreirajtesledeci upit:

dollars = 129 # define variablefor # requiredcrop

# price per acre

# select polygons based on cropprice

? kliknite [OK] u QueryEditor prozoru

? pritisnite na [OK] uVector Object DisplayControls prozoru

Imena promenljivih moraju uvek biti napisanamalim slovima, i moraju da pocinju slovom.Ime promenljive ne može da bude isto kaokomanda upita ili tabela baze podataka ili kaoime polja.

Moguce je poboljšati citljivost i kasniju iskorišcenostupita korišcenjem komentara. Komentar pocinje “#”simbolom i može biti u posebnoj liniji ili na kraju upita.Komentari mogu biti u okviru upita da bi objasnilipojedine iskaze, ili to mogu biti uvodni komentari kojiobjašnjavaju nameru korišcenja upita i kom objektusu namenjeni.

TNTmips upitni proces takode omogucavaimenovanje i oznacavanje vrednosti promenljivih

korišcenih u upitu. Ovaj primerupita selektuje poligonezemljišta koji prekoracujutraženu potencijalnu cenu rodapo jutru bilo za ovas ili pšenicu.Prva linija upita je oznaka iskazakoji definiše numerickupromenljivu nazvanu “dolari”

koja treba da sadrži ocekivanu cenu i daje joj vrednost129. Simobol “=” je korišcen da oznaci vrednostpromenljive.

Promenljive su korisne kada se ista vrednost koristiviše puta u upitu. Ukoliko je potrebno pokrenuti ovajupit ponovo sa drugom cenom, potrebno je promeniti

samo vrednost oznacenu kodpromenljive “dolari”.

Ukoliko se ovaj upit piše bezpromenljive, potrebno je promeniti dvenumericke vrednosti u oznacenomiskazu.

Page 13: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 13

Izrada i korišcenje upita

Upotreba String promenljiveMoguce je takode definisati promenljivu koja sadržistring vrednost. Naziv koji se dodeljuje stringpromenljivoj mora se završavati sa $. Upit u ovojvežbi definiše string promenljivu name$, kojom jeoznacena vrednost “Glenberg”. Upit selektuje nizpoligona koji pripadaju seriji Glenberg tla koji ukljucujudva tipa tla u Crow Butte podrucju. Umesto korišcenjadve klase simbola za selektovanje poligona ovaj upitima prednost zbog cinjenice da polje NAME uDESCRIPTN tabeli omogucava opis tla koja pocinjuimenom “Glenberg” za obe klase.Upit koristi “sadržajni” (“contains”)operator za selekciju elemenatapomocu specificnih string karakterakoji odgovaraju svim ili delovimastring polja. U ovom slucaju karakterstringa koji treba da odgovara (“Glenberg”) jepostavljen u name$ promenljivu. Poligoni kojiodgovaraju ovoj selekciji su prikazani na osnovu svograsprostranjenja (u kvadratnim metrima), a podaci otome su uskladišteni u polju Area koje se nalaziu standardnoj POLYSTATS tabeli (POLYSTATStabela je prisutna samo u slucaju kada suizracunati standardni atributi za vektorskiobjekat).

KORACI? otvorite prozore Vector

Object Display Controls iQuery Editor

? izaberite New iz menijaFile

? koristeci Insertproceduru i/ili rucnokreirati sledeci upit :

name$ = "Glenberg"DESCRIPTN.NAME contains name$and

( POLYSTATS.Area < 60000 or

? pritisnite na [OK] u QueryEditor prozoru

? kliknite [OK] u VectorObject Display Controlsprozoru

Tekstualni string “Glenberg” je ukljucen uDESCRIPTN.NAME polje za oba tipazemljišta koja pripadaju Glenberg serijama.

Operator “contains” selektuje poligone zakoje se karakteri string-a u name$promenljivoj poklapaju sa bilo kojim delomDESCRIPTN.NAME string polja.

Page 14: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 14

Izrada i korišcenje upita

Korišcenje logickog “not” operatoraKORACI? otvorite prozore Vector

Object Display Controls iQuery Editor

? izaberite New iz menijaFile

? koristeci Insertproceduru i/ili rucnokreirajte sledeci upit :

? kliknite na [OK] u QueryEditor prozoru

? pritisnite [OK] u VectorObject Display Controlsprozoru

YIELD.WHEAT >= 27 andYIELD.WHEAT <= 32 and!( DESCRIPTN.NAME contains

Brojna zemljišta u Crow Butte imaju potencijalnipšenicni rod koji se može porediti sa dva Glenbergzemljista (sa 27 i 32 bušela po jutru). Upit u ovoj vežbiizdvaja sve tipove zemljišta u okviru ovog rasponaroda osim vrednosti zemljišta “Glenberg”.

Prve dve linije upita selektuju poligone u kojima jepotencijalni pšenicni rod izmedu oznacenihvrednosti. Treca linija upita pocinje logickim “not”operatorom (!), koji okrece rezultat promenljive,

operatora ili izraza koji senalaze u nastavku linijeposle operatora. U ovomslucaju izraz u zagradi ce

selektovati poligone koji pripadaju “Glenberg”zemljištimu. ”Not” operator (!) okrece ovaj rezultat isaglasno prethodnim zahtevima selektuje svepoligone koji odgovaraju prinosu roda od 27 - 32bušela, izuzev poligona Glenberg tla.

“Not” operator je posebno koristan kada postoji velikibroj vrednosti koji želimo selektovati i manje, lakšeizdvojene grupe vrednosti koje ne želimo daizdvojimo.

Operator ‘not’ preokrece element koji ga sledi(ukljucujuci promenljive ili druge operatore).Ako želite da ‘not’ operator primenite za ceoizraz (kao u ovom primeru), izraz mora bitiunutar zagrada.

Page 15: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 15

Izrada i korišcenje upita

Proveravanje prikacenih zapisaUpit formiran u ovoj vežbi se razlikuje od svih do sadakorišcenih u prethodnim vežbama. Umestoformiranja upita na bazi vrednosti odredenih atributa,ovaj upit je zasnovan na broju zapisa u odredenojtabeli baze nekog poligona. Upit koristi SetNum()grupu funkcija, koji vraca broj zapisa nekog skupu. Uovom slucaju skup je obezbeden bilo kojim izrazomkoji ima formu Table[*] i obuhvata sve zapiseprikacene za neki element u imenovanoj tabeli.

Ovaj upit izdvaja sve poligone razlicitih klasazemljišta, koji nemaju prikacen ni jedan zapis u tabeliYIELD. Suprotan upit [SetNum(YIELD[*])>1] ceizdvojiti sve vektorske elemente koji imaju privezaniza sebe više od jednog zapisa. Moguce je koristitiupite sa ovom formom da se izdvoje poligoni za kojenije povezan ni jedan atribut ili koji imaju zakacenedodatne zapise. U ovom primeru, svi poligoni kojinemaju prikacen zapis u YIELD tabeli pripadaju klasiWATER. Oni predstavljaju mala jezera i ribnjake i takonemaju potencijalni rod.

KORACI? otvorite prozore Vector

Object Display Controls iQuery Editor

? izaberite New iz menijaFile

? upotrebiti Insertproceduru i/ili rucnounesite sledeci upit:

SetNum(YIELD[*]) < 1

? pritisnite [OK] u QueryEditor prozoru

? kliknite na [OK] u prozoruVector Object DisplayControls

Upotrebite Function Groupopciju u Insert Functionprozoru da selektujete koju

grupu funkcijaželite da izlistate.

Pritisnite [Details]na InsertFunction prozoruda vidite daljeinformacije otrenutnoselektovanojfunkciji i primerkako se koristi.

Svi poligoni bez zakacenihzapisa u tabeli YIELD bazepodataka pripadaju klasiWATER. Takode možeteselektovati nezakaceneelemente desnim klikom naikonu za odgovarajucu tabelu uprozorima Group Controls iliLayout Controls i biranjemSelect All Unattached Elementsiz padajuceg menija.

Page 16: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 16

Izrada i korišcenje upita

Selekcija pomocu više prikacenih zapisaKORACI? otvorite prozore Vector

Object Display Controls iQuery Editor

? izaberite New iz menijaFile

? koristite Insert procedurui/ili rucni unos sledecegupita :

? kliknite na [OK] u QueryEditor prozoru

? pritisnite [OK] u VectorObject Display Controlsprozoru

“WB” in

Tabela LAYER za poligone klasa tla u CBSOILSQobjektu sadrži informacije o razlicitim slojevima utipicnom profilu tla za svaku klasu. Tu se nalaziizdvojeni zapis za svaki sloj u profilu, a tako je sasvakim poligonom povezano više zapisa. Izdvajanjeelemenata na bazi selekcije više atributa izmedurazlicitih zapisa zahteva posebnu upitnu sintaksu.

U ovoj vežbi, na primer, želimo da izdvojimo tipovezemljišta koji sadrže stenovito tlo, a izloženi su uticaju

vremenskih prilika u svakom delu profila tla. Ovajatribut je oznacen stringom “WB” u poljutekstura. Ukoliko pokušate korišcenje

uobicajenih upita LAYER.texture == “WB”, videceteda ni jedan poligon nije selektovan, cak iako pojedinidelovi tla imaju stenovito zemljište u nižim delovimaprofila. Ovaj tip upita kontroliše samo prvi zapis utabeli za svaki poligon, što je u ovom slucaju zapissloja broj 1, koji sadrži atribute samo za najviše delovetla. Sledeci zapisi za dublje delove tla se zanemaruju.

Za upit teksturnog polja svih prikacenih zapisa,moramo koristiti izraz LAYER[*].texture, koji vracaspisak sadržaja teksturnih polja za svaki zapispovezan sa aktuelnim poligonom. Zatim je potrebnoodrediti da li bilo koji od clanova skupa odgovaraželjenom atributu “WB”. Najlakši nacin da se ovo uradije korišcenje reci “in” kao logickog operatora. Upit je

istinit ukoliko promenljiva kojaprethodi operatoru tacnoodgovara bilo kom elementu uskupu prikazanom izrazomkoji sledi operator. Ovakonstrukcija može bit ikorišcena kako sa string, takoi sa numerickim poljima.

Poligoni klasa tla koji imajuatmosferilijama izloženibedrok kao deo svogtipicnog profila.

Page 17: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 17

Izrada i korišcenje upita

KORACI? otvorite prozore Vector

Object Display Controls iQuery Editor

? izaberite New iz menijaFile

? koristeci Insertproceduru i/ili rucnokreirajte sledeci upit:

? pritisnite [OK] u QueryEditor prozoru

? kliknite na [OK] u VectorObject Display Controlsprozoru

? ponoviti gornji potupakkoristeci sledeci upit :

Internal.NumIslands >

Internal.Inside > 0

Vektorski poligon koji se u potpunosti nalazi u okviruveceg poligona se naziva island poligon (“ostrvopoligon”). S obzirom da island poligon ima cestorazlicite atribute od poligona koji ga okružuje, procesiizmene topologije ili atributa dodeljenih vektorskomobjektu moraju tretirati medusobni odnos objekta saisland poligonom.

Interna tabela poligona obuhvata nekoliko polja kojasadrže informacije vezane sa island poligon. Možetenapraviti upite kojim cete selektovati island poligonili poligone koji sadrže ostrvo. Polje Internal.Insidesadrži, ukoliko postoje, broj elemenata okruženogpoligona. Svi okruženi poligoni ce imati ne–nulavrednosti u ovom polju. Prvi upit stoga selektuje sveisland poligone. NumIslands polje prikazuje broj ostrvakoja se nalaze u svakom poligonu. Drugi upit u ovojvežbi selektuje poligone koji imaju NumIslandvrednost vecu od 0, omogucavajuci tako selekcijusvih poligona koji sadrže ostrva.

Pronalaženje poligona “ostrva”

Island polygoni selektovaniprvim upitom. Svako ostrvopripada razlicitoj klasi tla uodnosu na okolni poligon.

Dva poligona u CBSOILS_LITE

vektorskom objektuukljucuju island polygone,pa su zato selektovanidrugim upitom.

Page 18: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 18

Izrada i korišcenje upita

Stilizovanje skriptomKORACI? otvorite Vector Object

Display Controls prozor

? u Lines tabbed panelu,ukljucite Draw LinesBefore Polygons dugme

? na Polygons tabbedpanelu, podesite opcijuStyle u By Script, ikliknite na susednodugme (Specify)

? upotrebite Insert Symbolproceduru (Numericku iString opciju) da kreiratesledeci skript stil:

FillInside = 1FillColor$ = "100 500"DrawBorder = 1

? kliknite na [OK] uQueryEditor prozoru

? pritisnite na [OK] uVector Object DisplayControls prozoru

Koristite opciono dugme na Insert Symbolprozoru da pristupite razlicitim listamasimbola: konstante ili razliciti tipovipromenljivih (ukljucujuci izmedu ostalihnumericke, string i vektorske tipove).

Opcija Style by Script omogucava da se odredekarakteristike prikaza za svaki selektovani elementna osnovu njihovih atributa. Kao uvod u ovu opciju,ova vežba zadržava prethodno selektovane upite, alikoristi skup skriptova za odredbu novih parametaraprikaza svih selektovanih poligona. (Normalno bi

koristili opciju All Same da postigneteovo).

Kada postavljate stilove uz pomocskripta, Insert meni u Query Editor

prozoru omogucava pristup dopunskimpromenljivima koje su upotrebljene u skupukarakteristika prikaza. FillInside i DrawBorder sunumericke promenljive koje oznacavaju vrednosti od1 do popune selektovanog poligona i crtaju granicuoko njih. FillColor$ i DrawColor$ su string promenljivekoje služe da oznace boju poligona i njegovih granica.Vrednosti koje su im dodeljene (pod navodnicima)

mogu biti ime boje (crvena, zelena, plava, crna,bela, žuta, narandžasta, braon, cijan, ljubicastaili siva) ili skup RGB vrednosti (svaka od 0 do100%).

Page 19: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 19

Izrada i korišcenje upita

Složeni stil skriptoviKORACI? otvorite Vector Object

Display Controls prozor? u Polygons tabbed

panelu, podesite Selectopciju na All, ostaviteStyle opciju podešenu naBy Script i kliknite nasusedno Specify dugme

? izaberite New iz menijaFile

? koristeci Insert procedurui/ili rucno kreirajtesledeci upit :

? kliknite na [OK] u QueryEditor prozoru

? pritisnite [OK] u VectorObject Display Controlsprozoru

U ovoj vežbi svi poligoni klasa tla su selektovani zaprikaz, a stil skriptovi su korišceni da definišu dvarazlicita skupa parametara za prikaz poligonacelokupnog poligonalnog podrucja.

Kada se žele odrediti alternativne akcije u upitu ili stilskriptu, neophodno je koristiti “if-then-else” komande,koje eksplicitno definišu logiku zahteva. Iskaz u ovomskriptu se može prevesti kao “ako poligon imapodrucje vece od 200 000 kvadratnih metara, ondaga popuni žutom, inace ga popuni bitmap šrafurom(BitmapPatt4)”. Kada više srodnih iskaza prati “then”ili “or” komanda, grupa iskaza mora biti zatvorenaunutar begin/end komande. Izostavljanje begin/endkomande nakon “else” u ovom upitu nece izazvatisintaksnu grešku. Medutim, u tom slucaju ce samoprvi iskaz biti primenjen kao alternativa “then” akciji;preostali iskazi ce biti interpretirani i primenjeniglobalno na sve poligone (kao prvedve linije upita), prelazni parametristila su definisani ranije.

DrawBorder = 1DrawColor$ = "red"if ( POLYSTATS.Area < 200000 )then

beginFillInside = 1FillColor$ = "yellow"

endelse

beginFillInside = 1FillBitmapPatt = 1FillPatt$ = "BitmapPatt2"

Da bi koristili bitmap-u popunjavanja šrafuromu skriptu, uzorak dodeljen FillPatt$promenljivoj mora da se nalazi u User Set-udefinisanih uzoraka za objekat. Da bi nacrtaliuzorak, promenljive FillInside i FillBitmapPattobe moraju da budu podešene na 1. Videtibrošuru Getting Started: Creating and UsingStyles radi informacija o kreiranju ipopunjavanju šrafurom i formiranju drugihstilova.

Poligoni površine od 200,000 kvadratnihmetara ili vece se popunjavaju sa prugastimuzorkom definisanim u BitmapPatt2. Manjipoligoni se popunjavaju žutom bojom.

Page 20: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 20

Izrada i korišcenje upita

Nalaženje poligona umetanjem tackeKORACI? otvorite Vector Object

Display Controls prozor? u Polygons tabbed

panelu, podesite Styleopciju na By Attribute

? podesite Select opciju naBy Query i kliknite nasusedno dugme(Specify)

? izaberite New iz menijaFile u Query Editorprozoru

? koristeci Insertproceduru i/ili rucnokreirajte upit koji sledi:

? pritisnite [OK] u QueryEditor prozoru

? kliknite na [OK] u VectorObject Display Controlsprozoru

xvar = -103.33861yvar = 42.73583georef = GetLastUsedGeorefObject( Vect )c_poly = FindClosestPoly( Vect, xvar, yvar,georef )

Upitni proces ukljucuje i brojne prostorne funkcije kojemogu biti upotrebljene za selektovanje elemenata.FindClosestPoly() funkcija (u vektorskoj funkcijskojgrupi) vraca broj elementa poligona koji okružujetacku sa odredenim x i y koordinatama. Željeniparametar funkcije ukljucuje u upit vektorski objekat,njegove x i y koordinatne vrednosti i brojgeoreferenciranog podobjekta koji se može koristitipri l ikom obrade vrednosti koordinata. Brojgeoreferenciranog podobjekta je obezbedenfunkcijom GetLastUsedGeorefObject() (ugeoreferentnoj funkcijskoj grupi), koji se u iskazudodeljuje promenljivoj “georef”. Definisana pomenljiva“Vect” (u Vector listi u prozoru Insert symbol) sekoristi da oznaci tekuci vektorski objekat. Prve dvelinije upita definišu promenljive koje sadrže x i yvrednosti koordinate tacke.

FindClosestPoly() funkcija je korišcena prilikomodredivanjaiskaza i onacuva brojeveelemenata uo k v i r upoligona, u

vidu numerickih promenljivih (c_poly u ovom primeru).Krajnji iskaz upita poredi brojeve elemenata svakogpoligona u objektu (Internal.ElemNum) sa brojem kojije smesten u c_poly da bi se pronašao poligon koji

ce biti prikazan.

Lokacija tacke odredena koordinatama xvar(dužina) i yvar (širina). Vrednosti korišceneu upitu moraju biti u istom koordinatnomsistemu kao i odredeni georeferenciranipodobjekat. Širina / Dužina koordinata morabiti izražena u decimalnim stepenima.

Page 21: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 21

Izrada i korišcenje upita

Upit za susedne poligone: LogickiKORACI? otvorite prozore Vector

Object Display Controls iQuery Editor

? izaberite New iz menijaFile

? koristeci Insertproceduru i/ili rucnokreirajte upit prikazan nasledecoj strani:

? kliknite na [OK] u QueryEditor prozoru

? pritisnite [OK] u VectorObject Display Controlsprozoru

Vektorski CBSOILS_LITE

objekat sa selektovanimsvim poligonima klasaSrD i Sa (radi poredenjasa ilustracijom nasledecoj strani).

Class Sa Class SrD

Selekcija upita takode može koristiti topografskeinformacije povezane sa vektorskim objektima. Svakalinija u vektorskom objektu ima pocetni i krajnji nod,koji definišu levu i desnu stranu linije. Svaki poligonje napravljen od specificnih linijskih elemenata i internatabela linija ukljucuje polja sa brojevima elemenatapoligona koji leže sa leve, odnosno desne strane linije.GetVectorPolyAdjancedPolyList() funkcija (u Vectorlisti u prozoru Insert Function) koristi ove informacijeza odredbu koji je poligon susedni tekucem poligonu.Ova funkcija može biti korišcena u upitu zaselektovanje poligona koji su susedni poligonimaspecificne klase.

Kao primer, treba razmotriti upit za CBSOILS_LITEvektor objekta koji selektuje poligone koji pripadajuklasi zemljišta “SrD”, a koji su susedni sa klasompoligona “Sa”. Da bi se razmatralo okruženje, poligonimoraju da dele glavnu granicnu liniju, a ne samo glavninod. Opšti nacin korišcenja ovakvog upita je sledeci:

1) Definisati klasu koja se selektuje.

2) Ukoliko poligon pripada klasi koja je selektovana,treba uraditi sledece korake (testirati susednepoligone), a u protivnom ih zaobici.

3) Preci na listu poligona koji su susedni samo saosmatranim poligonom.

4) Proveriti pridruženu klasu svakogsusednog poligona. Ukoliko bilo koja odnjih odgovara definisanoj susednoj klasi,selektovati taj poligon. Ukoliko neodgovara, treba ga odbaciti.

Sintaksa za ovaj upit je prikazana iobjašnjena na sledecoj strani.

Page 22: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 22

Izrada i korišcenje upita

Upit za susedne poligone: Sintaksickiif (CLASS.Class == "SrD") then

beginarray polylist [10]numpolys = GetVectorPolyAdjacentPolyList(Vect,

polylist)for i = 1 to numpolys begin

polynum = polylist[i]if (Vect.poly[polynum].CLASS.Class$ == "Sa")thenreturn 1

endreturn 0

end

123456789

101112

1. Dodeljuje broj tekuceg susednog poligona (odreden na osnovu svog indeksa u redu)promenljivoj “ploynum”-u.

2. Pocinje procesna petlja koja proverava klasu susednih poligona.3. Definiše jednodimenzionalni niz “polylist” da bi zadržao listu elemenata brojeva poligona

koji su susedni sa tekucim poligonom. Inicira red velicine od 10 elemenata (velicina seautomatski menja putem funkcije u sledecoj izjavi).

4. Definiše promenljivu “numpolys” koja je dodeljena vrednosti jednakoj broju susednih poligonakoji su u okruženju tekuceg poligona. Ova vrednost se vraca funkcijomGetVectorPolyAdjacentPolyList, koja takode nalazi elemente brojeva susednih poligonai cuva ih u “polylist” nizu. Prethodno zadata promenljiva “Vect” se koristi da ukaže natekuci vektorski objekat.

5. Pocinje procesna petlja koja ispituje klase svih poligona u redu. Petlja se pokrece jednomza svaki element u redu, pocevši od prve pozicije (indeks reda 1) i nastavlja do krajnjepozicije (koja je odredena tekucom vrednošcu promenljive “numpolys”). U svakoj petljipromenljivoj “i” se dodeljuje vrednost indeksa tekuceg reda koja ce se koristiti u sledecojizjavi.

6. Dodeljuje broj tekuceg susednog poligona (odreden na osnovu svog indeksa u redu)promenljivoj “ploynum”.

7. Uporeduje klasu tekuceg susednog poligona sa navedenom susednom klasom.Specifikacija baze podataka je u formi Object.database[record#].table.field”. (Znak $ nakraju specifikacije baze podataka ukazujeda je zadato polje tipa string). Ukoliko seklase poklapaju, onda…

8. Izjava “vratiti se na 1” eksplicitno govori daje upit istinit za poligon koji zadovoljavagore pomenute uslove, tako da ce poligonbiti selektovan za prikaz.

9. Kraj reda procesne petlje.10. Ako svi susedni poligoni padnu na gornjem

testu klasa, izjava “ vratiti se na 0” govorida je upit netacan.

11.Kraj petlje okruženja poligona.12.Govori da je upit netacan za poligon koji

ne udovoljava pocetnoj uslovnoj selekcijiklasa iz izjave broj 1.

Poligoni klase SrD koji sususedni onima iz klase Sa.

Page 23: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 23

Izrada i korišcenje upita

Popis granica u TIGER podacimaKORACI? izbrišite sloj koji

je korišcen uprethodnoj vežbi

? kliknite na ikonuAdd Vector i sapadajuceg menijaselektujte Add VectorLayer

? selektujte ALMEDAobjekat iz TIGER ProjectFile-a

? u prozoru Vector ObjectDisplay Controls, napanelu Lines podesiteStyle Option na AllSame i opciju Select naBy Query

? otvorite Query Editorprozor i izaberite New izFile menija

? koristeci Insertproceduru i/ili rucnokreirajte upit koji jeprikazan niže

? kliknite na [OK] u QueryEditor prozoru

? pritisnite [OK] u VectorObject DisplayControlsprozoru

Vektorski objekti koji su uveženi iz US Census Bu-reaus TIGER / Line dokumenata, sacinjeni su odlinijskih segmenata koje predstavljaju prirodne ilitehnogene fizicke karakteristike, kao i od državnihgranica. Granice popisa pojaseva (i ekvivalentneBlock Numbering Areas ili BNA) i njihovi sastavnipopisni blokovi, se obicno poklapaju sa ostalimkarakteristikama i nisu eksplicitno identifikovane odstrane Census feature Class Code (CFCC) kaoosnovne karakteristike karte.

Popis blokova granicnih linija može biti selektovan zaprikaz ili izdvajanje korišcenjem upita koji markira linijeza koje brojevi blokova sa desne i leve strane nisuisti. Blokovi koji su podeljeni zadržavaju isti broj, alisu oznaceni razlicitim slovima u levom i desnomdodatku polja razlicitim sufiksom; drugi set iskaza uprimeru upita selektuje ove granice. Na kraju, blokoviu susedstvu BNA (Block Numbering Areas) moguimati iste brojeve, pa krajnji iskaz izdvaja linijerazlicitog BNA.

Grubi TIGER / Linepodaci za deo AlamedaCounty, California.

Isti deo sa popisomblokovskih granica,selektovane upitom.

Basic_Data.Block_Left <> Basic_Data.Block_Rightor ( Basic_Data.Block_Left ==Basic_Data.Block_Right and Basic_Data.BlockSuff_Left <>

Basic_Data.BlockSuff_Right )

Page 24: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 24

Izrada i korišcenje upita

Racunanje u polju iz višestrukih zapisaKORACI? smanjite Display prozor

iz prethodne vežbe? izaberite Edit / Attribute

bazu podataka iz glavnogTNTmips menija

? pronadite i selektujteobjekat CBSOILS_LITEiz Project File-aCBSOILSQ

? ukljucite dugme Polygonu prozoru Select

? u prozoru DatabaseEditor, kliknite desnimdugmetom miša naClass table kvadrat, iselektujte Edit Definition

? u prozoru definition zaClass table pritisnite naikonu Add Field

? u polju liste,oznacite ime podefault-u za novoime i ukucajte ClassArea

? na panelu Field info,selektujte Computed izField Type menija ikliknite na EditExpression

? unesite upit koji jepokazan dole, u prozorQuery Editor

sum = 0.0num = SetNum( POLYSTATS[*] )for i = 1 to num begin

sum = sum +POLYSTATS[i].Area

end

? unesite upit koji jepokazan dole, u prozorQuery Editor

? unesite 12 u Width tekstboks i 2 u Places tekstboksu

? kliknite na [OK] uprozoru definition

? kliknite dva puta na boksClass table da bi gaotvorili

Skriptovi takode mogu biti korišceni prilikomdefinisanja vrednosti za izracunavanje u polju tabelebaze. U mnogo slucajeva ovi skriptovi zahtevajukreiranje jednostavne aritmeticke relacije više polja uistom zapisu. Zadatak u ovoj vežbi je malo složeniji:treba izvršiti izracunavanje u polja poligona tabeleClass za CBSOILS_LITE koja prikazuju ukupnupovršinu podrucja za svaki tip zemljišta.

Površine poligona su smeštene u POLYSTATS tabeliza pojedinacne poligone, ali mi kreiramoizracunavanje vrednosti zapisa polja iz tabeli Class,koja ima po jedan zapis za svaki tip zemljišta. Skriptkoji je ovde pokazan je dizajniran da sumira podrucjapoligona za svaku klasu zemljišta i da vrati rezultatkao vrednost polja.

Skript definiše numericke vrednosti promenljive “sum”koji se koristi da sumira podrucja u POLYSTATS.Areapolju. Ova promenljiva mora da vrati vrednost na 0.0za svaku klasu. Promenljivoj “num” je dodeljenavrednost (za tekucu klasu tla) koja je jednaka brojuprikacenih zapisa u POLYSTATS tabeli. Ovapromenljiva se koristi da postavi broj ponavljanja petljekoja sumira površinu podrucja.

Tabela Class sadodatim izracunatimpoljem pokazujezbirnu površinu zasvaki tip tla. ? izaberite Table / Close da bi

zatvorili Class table.

Page 25: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 25

Izrada i korišcenje upita

Polja sa String IzrazomKORACI? izaberite File / Open

Database u prozoruDatabse Editor

? pronadite i selektujteobjekat CBSOILS_LITEiz Project File-aCBSOILSQ

? ukljucite dugme Polygonu prozoru Select

? u prozoru DatabseEditor, kliknite desnimdugmetom miša na boksza Sections tabelu iselektujte Edit Definition

? u prozoru definition zaSections table, kliknitena Range field u listi ikliknite na AddField ikonu

? u listi polja,oznacite ime po difoltu zanovo polje i ukucajteSecTwpRng

? selektujte StringExpression iz menijaField Type i kliknite naEdit Expression

? unesite upit koji jepokazan dole u prozoruQuery Editor

? kliknite OK u prozoruQuery Editor

? unesite 25 u tekst boksWidth

? kliknite OK na definitionprozoru

? kliknite dva puta na boksza Selection tabelu da bije otvorili

? izaberite File / Close izoba prozora DatabaseEditor-a kada završiteovu vežbu.

sprintf( “Sec %s Twp %s Rng %s”,Sections.Section, Sections.Township,

Polja sa string izrazom su poseban tip izracunatihtabela u bazi. Najjednostavnije korišcenje stringizraza je kopiranje sadržaja string polja u druguvezanu tabelu u okviru tekuce tabele. Izraz u tomslucaju je jednostavno odgovarajuca TABLE.FIELDreferenca. Takode je moguce koristiti string izraz zaspajanje sadržaja nekoliko string polja u jedno polje.Na primer, tabela zvana NAME može imati odvojenapolja za ime i prezime. Da bi se oni spojili potrebnoje iskoristiti operator “+”. Izraz

NAME.FIRST + “ ” + NAME.LAST

ce napraviti unos u formi “John Doe”. Izraz morasadržati bilo koji karakter za odvajanje (space, zarez)kako je i prikazano u primeru. Moguce je spojiti stringizraze za polja da bi se dobio tekst za dodatneinformacije Data Tips.

Izraz korišcen u ovoj vezbi, koristi sprintf( ) funkcijukoja dozvoljava da se formatira složeni string izrazmnogo lakse. Prvi argument funkcije je kontrolni string(u zagradi), za kojim slede reference string polja.Svaki “%s” unos u kontrolnom stringu oznacavareferencu jednog string polja. Kontrolni string takodemože ukljuciti tekst, prazan prostor i interpunkciju.

Formatirantekst kreiranpomocustring izraza.

Page 26: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 26

Izrada i korišcenje upita

Provera digitalizovanih objekata upitimaKliknite na Select / Deselectikonu i izaberite Select byQuery da otvorite standardniprozor Query Editor gdemožete uneti upit za taj tipelementa.

Izabrani upiti mogu takode biti od koristi kada se kreiraili prikazuje vektorski objekat koristeci TNTmipsSpatial Data Editor. Složeni vektorski objekti mogusadržati digitalizovane greške kao što su prebacenelinije, nezatvoreni poligoni i iscepkani poligoni. Mnoge

greške ovog tipa nisu vidljive, osim ako se neuvelicaju, što može samo dodatno otežati rad ioduzeti vreme. Korišcenjem upita je moguceubrzati i olakšati nalaženje ovih grešaka kao što jeprikazano u primeru. Spatial Data Editor prozorobezbeduje ikone koje omogucavaju kreiranje iprimenu upita za odredeni tip elementa.

Ako vektorski objekat sadrži mrežu poligona, praznina izmedudve linije koje bi trebalo da se seku, može da ostavi jedanpoligon na mestu na kome bi trebalo da postoje dva odvojenapoligona. Upitom je moguce pronaci linije koje nisu zatvorene,jer imaju isti poligon sa obe strane.

Internal.LeftPoly == Internal.RightPoly

PREBACENE LINIJEPrebacene linije su kratki segmenti linija koje se nepravilnoprodužuju iza preseka linija. Ukoliko ste prolazili krozproces Standard Attributes za vektorski objekat, možetekoristiti selektovani upit koji je baziran na dužini linija,kako bi selektovali sve veoma male linije radi ispitivanjai moguceg uklanjanja.

LINESTATS.Length < [vaša vrednost dužine]

ISCEPKANI POLIGONIDvostruko crtanje granica može stvoriti nepostojeceiscepkane poligone duž granice dva dodirna poligona.Iscepkani poligoni obicno imaju mnogo manju površinu negoglavni poligon, i obicno su izduženi (sa veoma sažetimodnosom). Koristite kombinovan upit u polju Area andCompactRatio, u tabeli POLYSTATS, kako bi selektovaliiscepkane poligone. POLYSTATS.Area < [vaša vrednost površi] ili POLYSTATS.CompactRatio > 3.00

NEZATVORENI POLIGONI

Page 27: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 27

Izrada i korišcenje upita

Pan-ovanje UpitomKORACI

? vratite prozore View iGroup Controls

? otvorite prozor VectorObject Display Controls

? u Panelu Lines podesiteopciju Select na All Ikliknite OK

? otvorite meni Options uprozoru Spatial DataDisplay View i proveriteda li je Show Scale /Position opcija ukljucena

? u tekst boksu Scaleunesite “5000”, na dnuprozora View, i pritisnite<Enter>

? kliknite na ikonuShow Details nalejeru Iconrow

? pritisnite Selectikonu za liniju

? kliknite na ikonuSelect / Deselectza linije i izaberiteSelect By Querysa padajuceg menija

? u Query Editor unesitesledeci upit:

Vežbe u ovoj brošuri Getting Started su Vas upoznale sa osnovamastrukture i sintakse upita baza podataka koje se koriste u TNT mips-u,TNT edit-u i TNT view-u. Jezik upita je podset Spatial Manipulation Language(SML) koji se koristi u TNT mips-u i deli istu sintaksu. U prilogdokumentacije o upitima, koja je navedena na strani 2, možda cete želetida konsultujete SML dokumentaciju u TNT mips-ovom referentnomprirucniku za dodatne namere vezane za programiranje, kako bi proširilisvoja znanja o mogucnostima upita.

Selektovanielement

Aktivnielement

Upotrbite Previous Selected iNext Selected ikonu da bipan-ovali napred ili nazadkroz set selektovanihelemenata.

LINESTATS.Length<50

? kliknite na Apply naSelect by Query prozoru

? pritisnite ikonu NextSelected

Izvršeni upit iz Element Selection prozora u SpatialData Editor-u ili u Spatial Data Display cesto selektujeviše od jednog elementa. Jedan od ovih selektovanihelemenata je oznacen kao “aktivni” element; aktivni iselektovani elementi su oznaceni razlicitom bojom.Operacija uredenja može biti primenjena i na aktivnii na selektovani element. Moguce je koristiti PreviousSelected i Next Selected ikonu u Element Selectionprozoru da bi se išlo napred ili nazad kroz selektovaniskup elemenata, pri cemu se svaki od njih aktivirakada na njega dodje selekcija. Prikaz se automatskirepozicionira (ako je neophodno) za prikaz trenutnoaktivnog elementa. Ova “pan by query” karakteristikaomogucava da se zadrži zum na elementu koji seproucava (i možda edituje) dok se lagano prelazi krozselektovani skup.

Page 28: T I Izrada i korišcenje upita - HESC servizi per il ... · referentni prirucnik. Ogledni podaci Vežbe predstavljene u ovoj brošuri koriste ogledne podatke koji se distribuiraju

strana 28

Izrada i korišcenje upitaNapredni Software za Geoprostornu Analizu

Voice: (402) 477-9554 email: [email protected]: (402) 477-9559 internet: www.microimages.com

UPITI

MicroImages, Inc.11th Floor - Sharp Tower206 South 13th StreetLincoln, Nebraska 68508-2010 USA

MicroImages, Inc. izdaju kompletan asortiman profesionalnog softvera za naprednu vizuelizacijugeoprostornih podataka, analizu i izdavaštvo. Kontaktirajte nas ili posetite naš Web Site zadetaljnije informacije o proizvodu.

TNTmips TNTmips je profesionalni sistem za potpuno integrisani GIS, analizu slike, CAD, TIN,desktop kartografiju i menadžment geoprostornih baza podataka.TNTedit TNTedit obezbeduje interaktivne alate za kreiranje, georeferenciranje i editovanjevektorskih, CAD, TIN, slikovnih i srodnih projektnih materijala baza podataka, u širokom spektruformata.TNTview TNTview ima iste mocne performanse prikazivanja kao TNTmips i odlican je za onekojima ne treba tehnicko procesiranje i pripremanje materijala u TNTmips-u.TNTatlas TNTatlas Vam dozvoljava da izdajete i distribuirate Vaše prostorne projektne materijalena CD-ROM-u po niskim cenama. TNTatlas CD-ovi mogu da se koriste na bilo kojoj popularnojplatformi.TNTserver TNTserver Vam dozvoljava da izdajete TNTatlase na Internetu ili Vašoj internoj mreži.Surfujte kroz Geodata Atlas pomocu Web browser-a i TNTclient Java applet-a.TNTlite TNTlite je besplatna verzija TNTmips-a za studente i profesionalce koji rade manjeprojekte. Možete skinuti TNTlite sa MicroImages Web Site-a ili ga možete naruciti na CD-ROM-u.

Index

Aritmeticke operacije 9Cuvanje upita 9Insert Field prozor 16Insert Operator prozor 5Izracunavanje polja 24,25Komentari 12Logicki operatori (i, ili, ne) 10,14Namena izjava 12Otvaranje upita 9Pan-ovanje upita 27Promenljive 12,13Selekcija elemenata Iscepkani poligoni 26 Neprebacene linije 26 Nezakaceni zapisi 15 Ostrva poligona 17 Pomocu upita 3 Prebacene linije 26 Susedni poligoni 21,22

Selekcija elemenata (nastavak) Umetanje tacke poligona 20 Višestruko zakaceni zapisi 16 Selektovanje v. selekcija elem. SetNum funkcija 15 Sintaksa, provera 8 Složeni upiti 10,19 Stilizovanje skriptom 3,18,19 String polje 7 String polje – izjava 25 String promenljiva 13 Table[*] izjava 15 TIGER podaci 23 Upiti baza podataka, definicija 3 Znaci za poredenje 4 Jednako, == 5 Nejednako, <> 11 Sadrži 13 Vece od, > 4