75
Sveuˇ ciliˇ ste u Zagrebu Geodetski fakultet Implementacija GIS funkcionalnosti u CAD okruˇ zenju koriste´ ci modul otvorenog koda FDO Frane Glasinovi´ c 8. rujna 2010.

Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

  • Upload
    voquynh

  • View
    240

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Sveuciliste u Zagrebu

Geodetski fakultet

Implementacija GIS funkcionalnosti u CADokruzenju koristeci modul otvorenog koda

FDO

Frane Glasinovic

8. rujna 2010.

Page 2: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Pod punom moralnom odgovornoscu izjavljujem da sam ovaj rad izra-dio samostalno iskljucivo na temelju vlastitog znanja, uz pomoc mentora tenavedene literature.

Page 3: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Sazetak

Koristenje dosadasnjih specijaliziranih geoinformatickih programskih aplika-

cija kao sto je AutoCAD Map, nekada nisu dovoljna za prikazivanje, obradu

ili analiziranje prostornih podataka. Prosirivanjem funkcionalnosti AutoCAD-

a mozemo omoguciti da program radi tocno ono sto mi zelimo. U ovom radu

pokusati cu prikazat neke od funkcionalnosti prosirenja AutoCAD Map pro-

gramskog paketa na projektu katastra vodova plinovoda u gradu Samobor.

U prvom dijelu objasnit cu opisati projekt na kojem se rad temelji te kako

se uopce doslo do ideje prosirenja AutoCAD Map-a. Objasnjene su aplika-

cije: AutoCAD Map, MS SQL Server Spatial, .NET i FDO.

U drugom dijelu opisan je teorijski dio projekta svih koristenih aplikacija

i metoda koji su pridonijeli stvaranju sustava.

U posljednjem dijelu naglasak je stavljen na programiranje u .NET-u i

implementaciji aplikacija u CAD okruzenju.

Kljucne rijeci: CAD, GIS, FDO, .NET, Autodesk Map 3D

Page 4: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Apstract

The usage of current geoinformatic software such as AutoCAD is someti-

mes not sufficient for displaying, processing or the analysis of spatial data.

Through the expansion of AutoCAD functions, we can enable the software

to perform the necessary tasks. In this paper I will try to present some of

the functions of AutoCAD Map software expansion as applied to Samobor

city gasworks cadastre.

In the first section I will outline the project on which the paper is based,

as well as how the idea of developing Autodesk Map application came about.

I will explain the following applications: Autodesk Map, MS SQL, Server

Spatial, .NET and FDO.

The second section addresses the theoretical part of the project, used sof-

tware and methods that contributed to the development of the system.

In the final part the focus is on .NET programming and the implementa-

tion of applications in CAD.

Keywords: CAD, GIS, FDO, .NET, AutoCAD Map 3D

Page 5: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Sadrzaj

1 Uvod 4

1.1 Vektorski i rasterski tip podatka . . . . . . . . . . . . . . . . . 5

1.2 Softverska i GIS rjesenja . . . . . . . . . . . . . . . . . . . . . 8

1.2.1 GIS Cloud . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.2.2 ArcGIS Server . . . . . . . . . . . . . . . . . . . . . . . 10

1.3 O projektu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.4 Programska podrska . . . . . . . . . . . . . . . . . . . . . . . 12

1.4.1 Microsoft Windows . . . . . . . . . . . . . . . . . . . . 12

1.4.2 Autodesk Map 3D . . . . . . . . . . . . . . . . . . . . 12

1.4.3 .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.4.4 Microsoft Visual Studio 2008 Express . . . . . . . . . . 14

1.4.5 Autodesk Map API . . . . . . . . . . . . . . . . . . . . 15

1.4.6 Microsoft SQL Server 2008 Express . . . . . . . . . . . 17

2 Teorijski dio 22

2.1 Prostorne baze podataka . . . . . . . . . . . . . . . . . . . . . 22

2.1.1 Vrste prostornih tipova podataka . . . . . . . . . . . . 23

2.1.2 Geografski tip podatka . . . . . . . . . . . . . . . . . . 23

2.1.3 Geometrijski tip podatka . . . . . . . . . . . . . . . . . 24

2.1.4 Jedinice mjerenja . . . . . . . . . . . . . . . . . . . . . 25

2.1.5 Spatial reference ID - SRID . . . . . . . . . . . . . . . 25

2.2 Client - server model . . . . . . . . . . . . . . . . . . . . . . . 26

2.3 VPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.4 FDO API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.5 Struktura vektorskih podataka u CAD i GIS okruzenju . . . . 31

2.6 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

1

Page 6: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

3 Prakticni dio 38

3.1 Implementacija sustava . . . . . . . . . . . . . . . . . . . . . . 38

3.2 Ulazni podaci . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.3 Unos u bazu podataka . . . . . . . . . . . . . . . . . . . . . . 40

3.4 Stilovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.5 Aplikacije u CAD okruzenju . . . . . . . . . . . . . . . . . . . 46

3.6 Struktura programa za aplikaciju projekta . . . . . . . . . . . 49

4 Zakljucak 58

5 Dodaci 59

2

Page 7: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Popis slika

1 Tip podatka . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Usporedba vektorskog i rasterskog tipa podatka . . . . . . . . 7

3 Prikaz GIS Cloud-a Ltd [2010a] . . . . . . . . . . . . . . . . . 9

4 ArcGIS Explorer Online . . . . . . . . . . . . . . . . . . . . . 10

5 Plinska mreza sa popratnim prikljuccima . . . . . . . . . . . . 11

6 Visual Studio Express okruzenje . . . . . . . . . . . . . . . . . 15

7 Primjer jedne relacije . . . . . . . . . . . . . . . . . . . . . . . 18

8 Geografski tip podatka . . . . . . . . . . . . . . . . . . . . . . 24

9 Geometrijski tip podatka . . . . . . . . . . . . . . . . . . . . . 25

10 Princip rada client-server modela . . . . . . . . . . . . . . . . 27

11 Princip rada VPN mreze . . . . . . . . . . . . . . . . . . . . . 28

12 FDO logo organizacije OSGeo [2010] . . . . . . . . . . . . . . 29

13 Usporedba modela podataka . . . . . . . . . . . . . . . . . . . 33

14 Program za ciscenje crteza . . . . . . . . . . . . . . . . . . . . 40

15 Program za stvaranje topologije . . . . . . . . . . . . . . . . . 41

16 Prikaz Task Panel-a . . . . . . . . . . . . . . . . . . . . . . . . 42

17 Dostupni servisi . . . . . . . . . . . . . . . . . . . . . . . . . . 43

18 Program Bulk Copy . . . . . . . . . . . . . . . . . . . . . . . . 44

19 Nestilizirani podaci . . . . . . . . . . . . . . . . . . . . . . . . 45

20 Prikaz tablice Data Table . . . . . . . . . . . . . . . . . . . . 45

21 Izgled aplikacije . . . . . . . . . . . . . . . . . . . . . . . . . . 58

3

Page 8: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

1 Uvod

Prostorne informacije poprimaju sve vecu vaznost u danasnje vrijeme. Zelimo

znati gdje se sto nalazi u bilo kojem trenutku i, ako je moguce, bilo gdje. Teh-

nologija danas nam to i omogucava: samo je potrebno odrediti koje cemo od

rjesenja upotrijebiti za postizanje zeljenog nam cilja.

Geoinformacijski sustav (GIS) je sustav za pohranu, vizualizaciju, obradu

i analiziranje prostornih podataka. Omogucuje nam da na jednom central-

nom mjestu pohranimo podatke, a obradujemo na drugom. Najrasirenija

uporaba sustava je vizualiziranje podataka. Karta koja je pohranjena u

nekom GIS sustavu, automatski postaje neka vrsta ”pametne” karte koja

omogucuje korisnikovu interakciju, stvaranje upita, analiziranje prostornih

informacija, uredivanje podataka pa i stvaranje novih karata na temelju prek-

lapanja istih podrucja razlicitih izvora zanimanja. Pomocu svih tih prednosti

koje nude geoinformacijski sustavi, informacije se mogu koristiti za znans-

tvena istrazivanja, predvidanja katastrofa, upravljanje zemljistima, izradom

karata itd.

Temelj svakog geoinformacijskog sustava su podaci koji se prikupljaju

razlicitim metodama. Oni ovise o tocnosti koju korisnik sustava zahtijeva.

Jedan od pogresnih nacina, koji se kod nas dosta koristi, je digitaliziranje

starih planova. Takvi podaci vec u sebi sadrze pogresku zbog starosti plana

koji je bio podlozan usuhu i rastegu papira. Ulazeci takvim podacima u GIS

aplikacije, ne smijemo ocekivati nista tocnije i kvalitetnije informacije. Po-

datke u GIS softver mozemo unijeti i prebacivanje podataka sa geodetski ins-

trumenata ili globalnih pozicijskih sustava (GPS). Dakako najjednostavniji

nacin za dobivanje karata velikih podrucja je aviofotogrametrijskim nacinom

4

Page 9: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

prikupljanja podataka. To mogu biti digitalne ortofoto snimke ili pak neke

specijalizirane snimke termalnih podrucja koje nam mogu kasnije, prilikom

analiziranja, posluziti.

Vec danas mogu se naci razlicita softverska rjesenja, bila to komercijalna

ili besplatna rjesenja. Jedno od najpoznatije i prilicno skupo rjesenje je ESRI

softverska kompanija. Oni nude klijentska, serverska i mobilna GIS rjesenja.

Kako su komercijalna rjesenja, prilicno skupa rjesenja, vecina korisnika se

okrece besplatnim ili otvorenim rjesenjima1. Open-source zajednica sastoji

se od tisuce programera koji svakodnevno unaprijeduju kod te se tako postizu

zadovoljavajuca rjesenja za jednostavne pa i napredne geoinformacijske sus-

tave.

1.1 Vektorski i rasterski tip podatka

Temelj svakog vektorskog tipa podatka je tocka. Razliciti objekti mogu se

prikazati povezivanjem tocaka pomocu linija, dok se povrsine prikazuju kao

skup povezanih linija, tzv. poligoni.

1eng. open-source

5

Page 10: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

(a)Tocka

(b) Linija (c) Poligon

Slika 1: Tip podatka

Prednosti:

• jednostavnije povezivanje sa drugim izvorima vektorskih podataka

• zauzima manje prostora na mediju

• jednostavnije za upisivati, modificirati i odrzavati

• mogucnost izvrsavanja GIS upita

Nedostaci:

• neprikladno za prikazivanje kontinuiranih objekata

• svaki objekt mora biti zasebno pohranjen

• zahtjevno za prikazivanje velikog broja podataka

Rasterski podaci sastoje se od tzv. piksela koji su smjesteni u retke i stupce

celija u kojoj svaka pojedina celija ima odredenu vrijednost. Sto je gustoca

celija veca, moci ce se za isto podrucje dodijeliti vise atributa. Najcesce

svaka celija predstavlja odredenu zemaljsku jedinicu u prirodi. Rasterski po-

daci cesto predstavljaju sliku koju osim boje svakog piksela, moze sadrzavati

6

Page 11: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

neku drugu vrijednost, klasifikaciju zemljista, kolicina oborina, nagib terena

itd.

Prednosti:

• pogodno za prikazivanje kontinuiranih objekata

• jednostavnije za analizirati

• preglednije

Nedostaci:

• ne sadrzava informacije o projekciji

• kvaliteta podataka ovisi o gustoci piksela

• zauzima vise prostora na mediju od vektorskih podataka

Slika 2: Usporedba vektorskog i rasterskog tipa podatka

7

Page 12: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

1.2 Softverska i GIS rjesenja

Kada govorimo o GIS rjesenjima, ne govorimo samo o rjesenjima koja su za-

sebna za neki odredeni program, oni se mogu naci kao desktop aplikacije, web

aplikacije ili cloud aplikacije. Desktop rjesenja su specijalizirane GIS aplika-

cije koje posjedujemo na racunalu, a podaci se mogu nalaziti lokalno ili na

nekim udaljenim serverima. Da ne ostanu ograniceni na samo jedno racunalo

i jednog korisnika, omogucuje nam WEB GIS. Prednost ovakvog rjesenja je

to sto je on neovisan o hardveru i softveru koji je potreban na racunalu, vec

nam je dostatan samo web preglednik u kojem se cijela aplikacija nalazi, a

svi podaci nalaze se na internetu.

WEB GIS mozemo podijeliti u tri osnovne skupine:

• aplikacije sa staticnim kartama

• aplikacije sa dinamicnim kartama koja mogu prikazivati razlicita po-

drucja zanimanja

• aplikacije sa dinamicnim kartama na kojima se mogu izvrsavati od jed-

nostavnih atributivnih upita do slozenijih geometrijskih

Novina medu internet tehnologijama je takozvani cloud-computing ili u slo-

bodnom prijevodu, racunala u oblacima. Cloud-computing je vrsta sistem-

ske arhitekture bazirana na udaljenim racunalima na internetu. Korisnik se

pomocu internet preglednika spaja na servis iza kojeg se nalazi ogroman broj

racunala koje korisnik koristi za svoje potrebe. Mogucnosti koje su koris-

niku dostupne u desktop aplikacijama, omogucene su mu u cloud aplikaciji.

Prednost ovakvog modela je sto korisnik vise ne mora brinuti o softveru ili

hardveru koji se nalazi na tim racunalima, ne mora kupovati racunala, bri-

nuti se o sigurnosti, nadogradivati sustave, kupovati softver, jer mu je to sve

8

Page 13: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

vec omoguceno. Te prednosti uvidjele su i tvrtke koje se bave GIS rjesenjima.

Servisi koje pruzaju uslugu cloud-gis su ArcGIS Server i GIS Cloud.

1.2.1 GIS Cloud

GIS Cloud je prva svjetska web i cloud bazirana platforma sa svim svojstvima

geografskog informacijskog sustava (GIS), a ima napredne mogucnosti kre-

iranja, uredivanja, uploadanja, dijeljenja, objavljivanja, procesuiranja i ana-

liziranja prostornih i atributnih podataka. Svrha GIS Cloud-a je da korisnik

uporabom aplikacije donese najbolje moguce odluke za poslovanje te da rijesi

problem i donese poboljsanje geoprocesiranjem i vizualizacijom podataka.

Slika 3: Prikaz GIS Cloud-a Ltd [2010a]

9

Page 14: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

1.2.2 ArcGIS Server

U nadolazecim mjesecima tvrtka ESRI najavila je cloud gis rjesenje koje

ce biti bazirano na vec postojecem softveru ArcGIS Server koristeci Amazon

cloud. Postojece rjesenje ArcGIS Explorer Online nudi samo osnovne funkcije

pregledavanja karte.

Slika 4: ArcGIS Explorer Online

1.3 O projektu

Dosadasnje stanje katastra vodova evidentiralo se u CAD okruzenju sto je

rezultiralo nekonzistenciji i redundanciji podataka, tj. ono nije odgovaralo

stvarnoj slici na terenu. Shvativsi problem, krenulo se u poboljsanje sustava,

ali tako da se zadrzi dosadasnje poznato CAD okruzenje sa mogucnostima

GIS funkcionalnosti. Zadrzavajuci poznato CAD okruzenje, odluceno je ka-

tastar voditi u AutoCAD Map 3D programu koji u izvornom obliku podrzava

10

Page 15: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

spajanje na MS SQL Server bazu podataka. AutoCAD Map 3D je jedna od

rijetkih aplikacija na trzistu koja ima sve funkcionalnosti CAD okruzenja s

dodacima GIS aplikacija te omogucava direktan pristup svim geoprostornim

podacima koji se nalaze u razlicitim izvorima. Za to je zasluzan FDO2, tehno-

logija zasnovana na otvorenom kodu koja nam omogucava spajanje programa

na razlicite baze podataka, datoteke te servise na internetu. Osim spajanja,

olaksano je i rukovanje podacima. FDO ima mogucnost dodavati, uredivati,

brisati pa cak i raditi jednostavne upite na podacima. Povezivanjem Auto-

CAD Map-a uz pomoc FDO modula, dobivamo samo rudimentalan prikaz

linijskih i tockastih objekata. Stiliziranjem linija i popratnih plinskih obje-

kata, moguce je sto vjernije pokazati stvarnu sliku terena.

Slika 5: Plinska mreza sa popratnim prikljuccima

2Feature Data Object

11

Page 16: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

1.4 Programska podrska

Softverska rjesenja koja su bila potrebna za provodenje zahtjeva katastra

vodova plinovoda:

• Microsoft Windows XP

• Autodesk Map 3D 2010

• Microsoft SQL Server 2008 Express

• .NET 3.5

• Microsoft Visual Studio 2008 Express

• Autodesk Map 3D API

• FDO

1.4.1 Microsoft Windows

U ovom slucaju nismo mogli koristiti ni jedan drugi operativni sustav osim

Microsoft Windows-a iz razloga sto aplikacija AutoCAD ne radi ni na jed-

noj drugoj platformi. Microsoft Windows je jedan od najrasprostranjenijih

operativnih sustava za siri krug korisnika te je zato i odabran.

1.4.2 Autodesk Map 3D

AutoCAD Map 3D je vektorski program za precizno kartiranje i GIS ana-

lize. Sadrzi sve funkcionalnosti AutoCAD-a i GIS alate potrebne za izradu

karata i geografskih informacija. Postoje ugradeni alati za spajanje na uda-

ljene baze podataka, njihovo manipuliranje te izvrsavanje prostornih upita

na prostornim podacima. Izrada karata olaksana je alatima za vizualizaciju

i stiliziranje. Postoji vise od 3000 globalnih koordinatnih sustava cime se

12

Page 17: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

omogucava jednostavnije transformiranje koordinata izmedu sustava. Veliki

broj podrzanih rasterskih i vektorskih podataka olaksava razmjenu crteza

izmedu svih poznatijih aplikacija.

1.4.3 .NET

Najvazniji dio .NET-a je .NET Framework. Jednostavno receno, to je skup

programa za izradu ili nadogradivanje operativnoga sustava, prvenstveno

Windows-a. U paketu se nalaze sve gotove klase kojima se ubrzava izrada i

razvoj aplikacija svih vrsta i oblika. Srce samog .NET-a je CLR3 koji ima

ulogu izvrsavanja koda. Aplikacije za .NET platformu mogu se pisati u bilo

kojem poznatom jeziku: C#, J#, C++, Visual Basic ili JScript. Instrukcije

pisane u ostalim jezicima se pomocu Microsoftovog kompajlera izvrsavaju u

jezik koji je poznat CLR-u kako bi ga mogao izvrsiti. .NET se moze podijeliti

na tri osnovna dijela: osnovne klase, Web Forme, Web Servise i Windows

Forme.

Osnovne klase4 sadrze sve funkcije i naredbe potrebne u programiranju (funk-

cije za transformaciju teksta, ispisivanje teksta, hvatanje unosa sa tipkovnice,

mrezna komunikacija itd.). Nadogradnja osnovnoj klasi sadrzi set klasa za

komunikaciju sa bazama podataka (ADO.NET) te manipulaciju XML dato-

tekama. ADO.NET je skup programskih klasa za pristup i manipuliranje

relacijskim bazama podataka.

Web Forme su dio skupa klasa koji se naziva ASP.NET. ASP.NET je skup

gotovih klasa za izradu dinamicnih web aplikacija. On kombinira standardni

HTML kod i .NET, a to omogucava jednostavniju izradu web aplikacije sa

svim mogucnostima koje nudi .NET Framework.

Web Servis je standard za komunikaciju izmedu aplikacija pomocu SOAP

3Common Language Runtime4Base Class Library

13

Page 18: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

poruka prenosenih Web-om. Prednost web servisa je integracija razlicitih

sustava i aplikacija putem standardiziranog nacina komunikacije. Web ser-

visi omogucuju prijenos informacija putem interneta udaljenim programima.

Windows Forms je skup klasa za izradu grafickih aplikacija na racunalima sa

Windows operativnim sustavom. Sadrzi gotove klase sto uvelike pojednos-

tavljuje izradu aplikacija i skracuje vrijeme programiranja.

1.4.4 Microsoft Visual Studio 2008 Express

Nezaobilazni program za programiranje u .NET-u je Microsoft Visual Studio

Express. Visual Studio Express je besplatno razvojno okruzenje za programi-

ranje svih vrsta aplikacija u .NET-u. Ideja Visual Studija je bila ujediniti sve

alate za programiranje na jednome mjestu te programiranje podici na visu

razinu. Visual Studio omogucava razvoj grafickih i konzolnih aplikacija te

izradu Windows Forma, web stranica i web servisa na platformama: Micro-

soft Windows, Windows Mobile, Windows CE, .NET Framework i Microsoft

Silverlight. Visual Studio Express sastoji se od uredivaca teksta, programa

za pronalazak gresaka5, dizajnera i ostalih alata koji pomazu jednostavnijem

razvoju aplikacija.

5eng. debugger

14

Page 19: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Slika 6: Visual Studio Express okruzenje

1.4.5 Autodesk Map API

API6 je sucelje pomocu kojeg jedan program komunicira s drugim. AutoCAD

Map API je skup klasa i metoda kojim se upravlja AutoCAD Map nared-

bama iz nekog drugog programa. Programe Autodesk-a mozemo prosiriti na

vise nacina: ObjectARX7 i VLISP8. ObjectARX je programsko okruzenje u

kojem mozemo prosiriti AutoCAD programe u objektno orijentiranom C++,

C# ili VB.NET programskom jeziku. ObjectARX nam omogucava direktan

pristup svim dijelovima otvorene arhitekture AutoCAD-a te takoder pristup

bazi objekata, grafickom sustavu te svim fundamentalnim naredbama. Pr-

6Application Programming Interface7AutoCAD Runtime Extension8Visual Lisp

15

Page 20: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

vobitno je Map API bio napisan u Autodesk-ovom primarnom programskom

okruzenju prosirenja ObjectARX-u, ali se sad postepeno ”prepisuje” kako bi

radio i na .NET platformi. Bas zbog toga je nacin programiranja otezan u

.NET-u jer je potrebno poznavati razlicite nazive klasa kao i metode progra-

miranja u oba jezika. VLISP je modifikacija Lisp programskog jezika koja

upravlja AutoCAD-ovim objektima. Razlika izmedu VLISP-a i ObjectARX-

a je sto je VLISP interpretacijski programski jezik, tj. ne pretvara se u izvrsni

kod nego se izvrsava liniju po liniju. VLISP je najvise pogodan za razvijanje

manjih i jednostavnijih aplikacija. .

Primjer programa u VLISP-u:

1 (defun c : rad2txt ( )

2 ( s e tq ent ( car ( e n t s e l ) )

3 rad iu s ( cdr ( assoc 40 ( entget ent ) ) )

4 ( print ( s t r c a t ( ”Radius kruzn i ce ” rad iu s ) ) ) ) )

Primjer istog programa u .NET-u:

1 using Autodesk .AutoCAD. A p p l i c a t i o n S e r v i c e s ;

2 using Autodesk .AutoCAD. DatabaseServ ices ;

3 using Autodesk .AutoCAD. EditorInput ;

4 using Autodesk .AutoCAD. Runtime ;

5 namespace rad2txt {

6 public class Class1 {

7 [ CommandMethod( ” kruzn ica ” ) ]

8 public void program ( ) {

9 Document doc = Appl i ca t ion . DocumentManager .

MdiActiveDocument ;

16

Page 21: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

10 Database db = doc . Database ;

11 Editor ed = doc . Editor ;

12 PromptEntityOptions peo = new

PromptEntityOptions ( ”Odaberi kruznicu : ” ) ;

13 PromptEntityResult per = ed . GetEntity ( peo ) ;

14 using ( Transact ion t rans = db .

TransactionManager . Star tTransact ion ( ) ){

15 DBObject obj = trans . GetObject ( per .

ObjectId , OpenMode . ForRead ) ;

16 C i r c l e krug = obj as C i r c l e ;

17 ed . WriteMessage ( ”Radius kruzn i c e ” +

krug . Radius . ToString ( ) ) ;

18 }}}}

1.4.6 Microsoft SQL Server 2008 Express

Microsoft SQL Server Express je besplatna relacijska baza podataka koja

upite temelji na Transact SQL jeziku (T-SQL), sto znaci da osim standard-

nih naredbi koje pruza SQL jezik sadrzi i mogucnost programiranja funkcija.

U ranijim verzijama SQL Server-a nije postojalo prosirenje na prostorne po-

datke, dok je od 2008 verzije to omoguceno. U prijasnjim verzijama bilo je

potrebno prosiriti bazu podataka kako bi postala prostorna. To je dovodilo

do nestabilnosti u radu jer prosirenje nije bilo u skladu sa standardima te

nije bilo izvorno podrzana od strane Microsofta.

Osnova svakog relacijskog pristupa su prikazivanje podataka pomocu rela-

cija. Relacije su podaci spremljeni u obliku tablica. Tablica je skup poda-

taka formiranih u obliku stupaca (atributa) i redaka (n-torki) za koje vrijede

17

Page 22: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

pravila:

• tip podatka je isti za sve vrijednosti unutar jednog atributa

• svaka vrijednost je neovisna o drugim vrijednostima u tablici

• unutar jedne n-torke ne smije postojati dvije iste vrijednosti

• redosljed vrijednosti u relaciji je nebitan

• imena atributa moraju biti razlicita

• imena atributa u razlicitim relacijama mogu biti identicna ali ne postoje

dvije relacije, unutar baze, sa identicnim imenom

Relacije najcesce opisuju neki objekt koji je podrucje interesa. Objekt je

entitet iz stvarnog svijeta o kojem se informacije skupljaju i obraduju.

Atributi su svojstva koja neki objekt moze poprimiti iz realnog svijeta. Svaki

objekt sadrzi barem jedan atribut. Domena atributa je skup svih vrijednosti

koje atribut moze poprimiti.

Slika 7: Primjer jedne relacije

18

Page 23: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Prilikom modeliranja baze podataka moramo se pridrzavati nekih svojstava

kako bi se osigurala konzistencija. Neka od ogranicenja su:

• kljuc9

• cjelovitost entiteta10

• referencijalna cjelovitost11

U svakoj tablici, jedan atribut mora biti tzv. primarni kljuc. Primarni kljuc

je jedinstvena vrijednost koja jednoznacno odreduje pojavljivanje svake n-

torke. Primarni kljuc je najcesce brojcana vrijednost koja se pojavljuje samo

jednom u relaciji.

Strani kljuc je primarni kljuc u drugoj relaciji. Veza izmedu dvije relacije

uspostavlja se povezivanjem primarnog i stranog kljuca. Strani kljuc mora

biti istog tipa podatka kao i primarni kljuc kako bi se veza mogla uspostaviti.

Cjelovitost entiteta je svojstvo koje ogranicava pojavljivanje primarnog kljuca

kao null vrijednost.

Referencijalna cjelovitost je svojstvo koje govori da primarni kljuc jedne re-

lacije mora imati odgovarajuce vrijednosti stranog kljuca druge relacije.

Primjer jednostavne SQL naredbe:

1 select ∗ from pl inovod

9eng. key10eng. entity integrity11eng. referential integrity

19

Page 24: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Jedna od mogucnosti T-SQL su stored procedures. Stored procedures je grupa

T-SQL naredbi slozena u jednu metodu. Ona nam omogucuje da napisemo

vlastite procedure koje ce izvrsavati odredene radnje nad podacima. Stored

procedures vracaju rezultat na cetiri nacina:

• brojcanu vrijednosti ili rezultat u obliku cursor varijable (cursors su

skup rezultata koji dohvacaju pojedinacne redke)

• kodove koji su uvijek brojcane vrijednosti

• grupu rezultata za svaku pojedinu SELECT naredbu unutar procedure

• globalni cursor koji moze biti referenciran izvan procedure

Prednosti procedura:

• SQL Server pretvara procedure u izvrsni kod sto povecava brzinu izvrsavanja

prilikom visestrukog pozivanja funkcije

• smanjuje kolicinu prometa mreze izmedu klijenta i posluzitelja

• visekorisnicko izvrsavanje procedura

Struktura procedura je slicna strukturi metoda u programskim jezicima. Pro-

cedura moze primati argumente prilikom pozivanja procedura te moze, ali

ne mora vracati vrijednosti kao rezultat. Procedure mogu sadrzavati logicke

provjere i petlje.

20

Page 25: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Primjer jednostavne procedure:

1 create procedure sp Pr ikazPl inovoda

2 as

3 select ∗ from pl inovod

Pokretanjem predhodnog primjera, u bazu se sprema procedura pod nazivom

sp PrikazPlinovoda. Da bi smo pokrenuli proceduru, koristimo naredbu:

1 exec sp Pr ikazPl inovoda

Primjer koristen u projektu:

1 create procedure [ dbo ] . [ sp GetTable ] ( @table varchar (10)

)

2 as

3 d e c l a r e @sqlcommand nvarchar (400) ;

4

5 set @sqlcommand =

6 case

7 when @table = ’ dubine ’ then

8 ’ s e l e c t ID , DUBINE, ROTATION, geom . STAsText ( ) AS geom

FROM dbo . ’ + @table

9 when ( @table = ’ kape ’ or @table = ’ zasun ’ ) then

10 ’ s e l e c t ID , ROTATION, geom . STAsText ( ) AS geom FROM

dbo . ’ + @table

11 . . .

12 end

Procedura sp GetTable uzima kao argument ime tablice, koji je tipa varchar,

te vraca vrijednosti tablice odredene logickom petljom na temelju ulaznog

parametra. Procedura je koristena zbog prikazivanja geometrije koja je u

21

Page 26: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

bazi spremljena u binarnom obliku. Metoda STAsText() vraca tekstualni

oblik koordinata objekta.

Primjer rezultata vracenog STAsText() metodom:

1 LINESTRING(−122.360 47 .656 , −122.343 47 .656)

2 Teorijski dio

2.1 Prostorne baze podataka

Prostorne baze podataka su baze optimizirane za pohranjivanje i izvrsavanje

upita na prostornim podacima, ukljucujuci tocke, linije i poligone. Baze po-

dataka pohranjuju razlicite vrste numerickih i tekstualnih tipova podataka

dok prostorne baze sadrze poseban dodatak za analiziranje prostornih po-

dataka najcesce nazvanih geometrija. Open Geospatial Consortium (OGC)

izradio je Simple Feature specifikaciju i skupinu standarda za dodavanje pros-

tornih funkcionalnosti bazama podataka.

Vecina baza podataka koristi indekse za brze pretrazivanje vrijednosti. Ti

indeksi nisu optimirani za rad na prostornim podacima te se zbog prostornih

podataka uvodi prostorni indeks.

Popis podrzanih prostornih upita podrzanih od strane OGC-a:

• prostorna mjerenja: izracunavanje prostorne udaljenosti izmedu tocaka,

povrsina, izracunavanje duljina polilinija itd.

• prostorne funkcije: modeliranje postojecih objekata u svrhu izrade no-

vih

22

Page 27: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

• prostorne predikcije: mogucnost predvidanja kretanja pojava i sl.

• konstrukcijske funkcije: upisivanje novih objekata pomocu SQL upita

• informacijske funkcije: ispisivanje informacija lokacije centra kruznice,

koordinate centroida itd.

2.1.1 Vrste prostornih tipova podataka

Osim uobicajenih vrsta tipova podataka, prostorne baze podrzavaju jos dvije

Tablica 1: Vrste prostornih tipova podataka

Tip podatka Uporabageografski geografske vektorske prostorne podatkegeometrijski prostorne podatke u ravnini

Slicnosti:

• mogu prikazati prostorne informacije pomocu tocaka, linija i poligona

• spremaju se u istom binarnom formatu

• koriste objektno-orijentirane metode temeljene na .NET Framework-u

• implementiraju prostorne iste prostorne metode za analiziranje i izracunavanje

2.1.2 Geografski tip podatka

Najvaznija karakteristika geografskog tipa podatka jest sto se bazira na za-

krivljenosti Zemlje. Ovaj tip podatka pogodan je za izracunavanje i anali-

ziranje prostornih podataka velikih podrucja gdje zakrivljenost Zemlje ima

23

Page 28: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Tablica 2: Razlicitost tipova podataka

Svojstvo geometrijski tip geografski tipOblik Zemlje Ravna OkruglaKoordinatni sustav Projekcija GeografskiZapis koordinate (x,y) geografska sirina i

duzinaJedinice mjerenja Jedinice koordinata x i y Definirano u

sys.spatial reference systems

SRID Nije proveden ProvedenPocetna vrijednost SRID 0 4326 (WGS 84)Limitacija Nema Objekt ne moze biti

veci od polutke

utjecaj na krajnji rezultat. Svaka linija povucena izmedu dvije tocke je us-

tvari dio glavne kruznice.

Slika 8: Geografski tip podatka

2.1.3 Geometrijski tip podatka

Za razliku od geografskog tipa podatka, geometrijski podaci baziraju se na

koordinatama u ravnini koristeci pravila kartezijevog koordinatnog sustava.

24

Page 29: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Slika 9: Geometrijski tip podatka

2.1.4 Jedinice mjerenja

Geografski tip podatka zapisuje se u obliku geografske duzine i sirine, mjerene

u stupnjevima. Ovakav tip oznacavanja pogodan je za prikazivanje tocaka

ali ne i za prikazivanje udaljenosti izmedu tocaka na povrsini.

Geometrijski tip podatka koristi pravila ortogonalnih udaljenosti od ishodista

koordinatnog sustava duz definirane osi. Rezultat je prikazan u jedinicama

u kojima je definiran koordinatni sustav.

2.1.5 Spatial reference ID - SRID

Vazna stvar prilikom upisivanja geografskih i geometrijskih podataka je do-

djeljivanje pripadajuceg SRID broja. SRID je jedinstven broj koji se koristi

za raspoznavanje razlicitih projekcija koordinatnih sustava. Svaki proizvodac

prostornih baza podataka koristi vlastitu bazu projekcija i identicne SRID

brojeve zbog lakseg koristenja. Svako mjerenje i racunanje podataka izracunato

je u skladu sa SRID brojem, tj. obzirom na projekciju u kojoj se podaci na-

laze.

Primjer definiranja WGS84 projekcije - SRID 4326

25

Page 30: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

EOGCS[”WGS 84”,

DATUM[”WGS 1984”,

SPHEROID[”WGS 84”,6378137,298.257223563,

AUTHORITY[”EPSG”,”7030”]],

AUTHORITY[”EPSG”,”6326”]],

PRIMEM[”Greenwich”,0,

AUTHORITY[”EPSG”,”8901”]],

UNIT[”degree”,0.01745329251994328,

AUTHORITY[”EPSG”,”9122”]],

AUTHORITY[”EPSG”,”4326”]]

2.2 Client - server model

Sustav katastra vodova namijenjen je da bude dostupan vecem broju koris-

nika s ovlastenim pristupom. Zbog toga se podaci spremaju na posluzitelje.

Posluzitelji su racunala, najcesce spojena na mrezu, u kojima su pohranjeni

podaci i koji omogucuju funkcioniranje mreze, a korisnici su ti koji se po

potrebi prikljucuju na posluzitelj i koriste podatke i usluge. Komunikacija

koja se ostvaruje prilikom pristupa podacima s klijentskog racunala prema

posluzitelju odvija se prema sljedecoj shemi:

26

Page 31: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Slika 10: Princip rada client-server modela

Kod ovakvog modela rada, postoji podjela poslova izmedu klijentskog

racunala i posluzitelja. Klijentsko racunalo salje zahtjev i prima obradene

podatke dok posluzitelj prima zahtjeve od klijentskih racunala, obraduje ih i

salje ih natrag prema klijentu. Iz navedenoga se moze zakljuciti da su klijent-

ska racunala znatno jednostavnija i slabija nego posluziteljska. Prednosti koje

ovakav model ima su sto se sva ulaganja moraju usmjeriti u posluziteljska

racunala dok su za korisnicka ulaganja minimalna. Medutim, nedostatak

je sto veza izmedu racunala zahtjeva odrzavanje. Najcesce su podaci po-

hranjeni na posluzitelju koji se nalazi na udaljenoj lokaciji, te su time vise

izlozeni neovlastenom pristupu drugih korisnika.

2.3 VPN

VPN12 je vrsta sigurnog povezivanja racunala u virtualne privatne mreze

preko javne mrezne infrastrukture. Dodjeljivanjem racunala u VPN mrezu

omogucujemo povezivanje udaljenih korisnika koji se mogu nalaziti na razlicitim

geografskim lokacijama, te se oni ponasaju kao da su u lokalnoj mrezi. Pred-

nost VPN-a jest zasnivanje na implementiranim mreznim infrastrukturama,

12Virtual Private Network

27

Page 32: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

te tada nije potrebno nikakvo dodatno povezivanje. Iako sav promet putuje

preko javne mreze, interneta, vidljiv je samo ogranicenom broju korisnika

koji su za to ovlasteni. Temelj VPN je sifriranje podataka te autentikacija

korisnika.

Prednost VPN-a pred ostalim vrstama privatnog povezivanja jest koristenje

Slika 11: Princip rada VPN mreze

vec postojece infrastrukture, tj. nije potrebno iznajmljivati privatne linije

ako kvaliteta i propusnost nisu previse znacajni. Jedini nedostatak je sto

moze doci do prekida internet veze ili moguceg kasnjenja paketa.

Osvrnemo li se malo na nas projekt, podacima katastra vodova pristupaju

samo ovlastene osobe koje nisu uvijek u mogucnosti biti blizu posluziteljima

te je odabir VPN mreze prijeko potreban. Podaci ce biti dostupni samo

odredenom broju korisnika koji mogu manipulirati podacima i koristiti os-

tale servise koji se nalaze na posluziteljima preko sigurne i sifrirane mrezne

infrastrukture.

28

Page 33: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

2.4 FDO API

Slika 12: FDO logo organizacijeOSGeo [2010]

FDO13 API je vrsta programske

podrske za manipuliranje, definira-

nje i analiziranje prostornih poda-

taka koji ne ovise o mediju u kojem

se nalaze. On kao takav ne postoji

kao zasebna aplikacija nego se ukom-

ponira u razlicite programe koje zele

pristupati podacima na jednostav-

niji i standardiziran nacin. Zbog

svoje jednostavnosti i rasirenosti, FDO podrzava veliki broj pruzatelja usluga

na razlicite servise, a samim time podrzava razlicite vrsta podataka koje su

smjestene u bazama podataka ili kao specificne datoteke.

Poceci FDO-a datiraju od tvrtke Autodesk; njima je bio potreban jedan

unificirani alat koji ce imati mogucnost spajanja na razlicite vrste servisa i

manipulacije podacima, ali tako da se istovremeno mogu zadovoljiti zahtjevi

ostalih aplikacija.

Pocetne mogucnosti FDO-a:

• minimalno podrzavanje OGC Simple Feature geometrijskog tipa po-

datka

• podrzava spajanje na Oracle Spatial bazu podataka i vrsi manipulaciju

podacima smjestenim u SHP datotekama

• mogucnost da se u FDO API kodu za svaki pojedini pruzatelj servisa

13Feature Data Object

29

Page 34: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

implementira zasebni modul

• omogucenje lakog dodavanja novih naredbi za manipuliranje podacima

Prva verzija FDO-a pojavila se izlaskom AutoCAD Map 2005 verzije. Od

pruzitelja servisa, sadrzavao je spajanje na Oracle bazu i na SDF datoteke

(Autodeskova verzija datoteke za spremanje geoprostornih podataka). Od

pocetka izlazenja FDO je bio pod licencom Autodeska. Izlaskom MapGuide-

a, servisa za objavljivanje prostornih podataka na internetu, FDO postaje

dio open source zajednice.

Do danasnjeg dana, mnoge aplikacije u sebi sadrzavaju implementiran FDO

kod kao dio svojih programa. Neka od poduzeca koja koriste FDO kod su:

Autodesk, MapGuide Open Source, FDO Toolbox, Save Software (FME).

Tablica 3: Prikaz mogucnosti FDO-a

Mogucnost OpisConnection Spajanje na bazu podataka ili datotekuDatastore Stvaranje, brisanje i listanje baza podatakaSelect Odabiranje objekata pomocu filteraInsert Stvaranje novih objekata u baziUpdate Modificiranje postojecih objekata u baziDelete Brisanje objekata u baziSQL Command Mogucnost izvrsavanja SQL naredbiTransaction Podrzava transakcije (begin, commit, rollback)

Ulaskom u Open Source zajednicu, izvorni kod postao je otvoren sto je

omogucilo mnogim programerima diljem svijeta da sudjeluju u njegovom ra-

zvitku. Sve brze su izlazile nove verzije programa, a istodobno se i FDO poceo

brze razvijati. Danas FDO podrzava vise od 10 usluznih servisa. Podrzani

30

Page 35: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

usluzni servisi: ArcSDE, MySQL, SDF, SHP, ODBC, WFS, WMS, GDAL,

OGR i Oracle

2.5 Struktura vektorskih podataka u CAD i GIS okruzenju

Vektor je skup od dvije tocke, odredene koordinatama, povezan linijom koja

ima svoju orijentaciju i smjer. Geometrijski objekti se u CAD i GIS okruzenju

prikazuju uz pomoc tocaka, linija i poligona. Sve izvedenice objekata se iz-

vode uz pomoc ta tri osnova oblika. Kako cemo objekte smjestiti u prostor i

medusobno ih povezati, ovisi o topoloskom modelu kojeg koristimo.

CAD14 programi su kompjuterski alati koji pomazu inzenjerima, arhitek-

tima i ostalim profesionalnim dizajnerima. AutoCAD kao CAD program

moze operirati s velikim brojem podataka. Objekti koji se nalaze u CAD

okruzenju nemaju svojstvo ovisnosti o drugim objektima u prostoru. Orga-

nizacija geometrijskih objekata u CAD programima je najcesce uredena po

tzv. spageti modelu.

Spageti model je nacin organiziranja geometrijskih objekata u prostornoj

bazi ili datoteci. Podaci smjesteni u prostoru na taj nacin ne ovise jedan

o drugom. Ne postoji nacin na koji se dva objekta mogu povezati jedan sa

drugim, tj. to su topoloski neuredeni podaci. Uredujemo li katastar u ovak-

vom modelu, suociti cemo se s problemom redundancije podataka. Granice

susjednih parcela najcesce ce biti predstavljene dvostrukim ”istim” linijama

zbog razlicitosti izvora podataka dok linije koje se presijecaju ne moraju

imati zapisanu tocku presjecista. Prednost spageti modela je prvenstveno

jednostavnost dodavanja novih objekata. Poznat primjer upotrebe ovakvog

14Computer-Aided Design

31

Page 36: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

modela je OpenGIS Simple Feature specifikacija. Medutim, nedostatak je

sto podaci uredeni na ovaj nacin nemaju mogucnost prostornih upita kao sto

su sadrzavanje, susjedstvo i blizina.

Za razliku od spageti modela koji se koristi u CAD okruzenjima, u GIS

okruzenju su podaci malo uredeniji. Topoloski model je skup pravila koji

definiraju veze izmedu prostornih podataka te definiraju relacije izmedu oso-

bina prostora. Osobina podataka je sto se veze ne mijenjaju uslijed tran-

sformacija, oni su neovisni o koordinatnom sustavu i mjernim jedinicama.

Topologija se sastoji od granicenja, sadrzavanja i povezivanja. Granicenje je

osobina kad dva susjedna poligona dijele istu granicu, a sadrzavanje je kad se

jedan poligon nalazi unutar drugog poligona, dok je povezivanje osobina li-

nija tako da tvore mrezu puteva. Za razliku od spageti modela u topoloskom

se nece dogoditi redundancija podataka u zapisu. Objekt koji se dijeli sa

nekim drugim objektom, npr. granica posjeda, u zapisu se pojavljuje samo

jednom, sto bitno smanjuje velicinu zapisa, pogotovo ako govorimo o veli-

kima kolicina podataka.

Prilikom dodavanja podataka u GIS okruzenje, posebnu pozornost treba

obratiti na ocuvanje topologije. Podaci moraju ostati konzistentni kako bi se

veze objekta sacuvale. Kako bi se postiglo ocuvanje veza potrebno je prilikom

svakog dodavanja objekta koji se vezuje na postojece objekte postivati pra-

vila topoloskog modela. Npr. ako povezujemo prikljucke na postojeci vod,

potrebno ga je prekinuti na tom dijelu. Svaka linija na presjecistu mora imati

cvor, te svaka linija mora biti jedinstvena i neprekinuta od jednog cvora do

drugog. Na takvim uredenim podacima moguce je raditi slozene analize kao

sto je prikazivanje podrucja koje ce biti zahvaceno prilikom puknuca voda,

32

Page 37: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

(a) Spageti model (b) Topoloski model

Slika 13: Usporedba modela podataka

planiranja postavljanja vodovoda i sl.

2.6 XML

XML15 je ”jezik” za jednostavno oznacavanje podataka. Nastao je prvens-

tveno namjerom da se na jednostavan i unificirani nacin opisuju podaci koji

ce biti citljivi ljudima i programima koji citaju obicne tekstualne datoteke.

Struktura XML-a je da se svaki podataka uokviruje ”trokutastim zagradama”

(<>) u koju se upisuju nazivi (tzv. tagovi) koji ga poblize objasnjavaju. Sin-

taksa je prilicno slicna HTML jeziku, ali se nikako ne moze reci da su iste.

Razlika izmedu ta dva jezika jest sto nazive oznaka u XML-u mozemo pro-

izvoljno odabrati dok su u HTML-u ti nazivi vec predodredeni.

Primjer XML dokumenta:

1 <?xml version=” 1 .0 ” encoding=” utf−8”?>

2 <LineSymbolization2D>

3 <LineSty l e>So l i d</ L ineSty l e>

4 <Thickness>0 .0</ Thickness>

15EXtensible Markup Language

33

Page 38: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

5 <Color>FF7DC473</ Color>

6 <Unit>Centimeters</Unit>

7 <SizeContext>DeviceUnits</ SizeContext>

8 </ LineSymbolization2D>

XML dokument se sastoji od dva dijela: zaglavlja (prologa) i tijela.

1 <?xml version=” 1 .0 ” encoding=” utf−8”?>

U zaglavlju dokumenta navodi se specifikacija xml dokumenta prema kojoj

je dokument izraden, u ovom slucaju to je ”1.0” verzija. Drugi dio zaglavlja

moze se izostaviti ako tijelo dokumenta ne sadrzava nikakve druge znakove

osim engleske abecede, u protivnom je potrebno napisati specifikaciju prema

kojoj ce se znakovi dekodirati.

1 <LineSymbolization2D>

2 . . .

3 </ LineSymbolization2D>

Svako tijelo dokumenta mora imati jedan korijenski element koji sadrzava

sve ostale elemente.

1 <LineSty l e>So l i d</ L ineSty l e>

Elementi opisuju odredeni sadrzaj u XML dokumentu te moraju biti obu-

hvaceni XML oznakama. Sadrzaj mora biti okruzen s lijeve i desne strane

pocetnom i zavrsnom oznakom.

Pocetna oznaka je:

1 <LineSty l e>

,dok je zavrsna ista kao i pocetna, samo sto pocinje sa kosom crtom ”\”

34

Page 39: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

1 <\LineSty l e>

Elementi u XML dokumentu su strukturirani u odnosu roditelj-dijete16 ili

kao sestrinski17. Odnos roditelj-dijete je hijerarhijskog tipa te se moze pro-

tezati beskonacno sve dok se postuju pravila smjestanja elemenata.

Roditelj-dijete odnos:

1 <LineRule>

2 <LegendLabel></LegendLabel>

3 <LineSymbolization2D>

4 <LineSty l e>So l i d</ L ineSty l e>

5 <Thickness>0 .0</ Thickness>

6 <Color>FF7DC473</ Color>

7 <Unit>Centimeters</Unit>

8 <SizeContext>DeviceUnits</ SizeContext>

9 </ LineSymbolization2D>

10 </ LineRule>

Sestrinski odnos:

1 <LineSty l e>So l i d</ L ineSty l e>

2 <Thickness>0 .0</ Thickness>

XML atributi poblize opisuju elemente u kojem se nalaze. Najcesce oznacavaju

kako se koji element mora prikazati. Sastoje se od naziva atributa i njegove

vrijednosti koja se stavlja pod navodne znakove. Atributi se upisuju samo

u pocetne elemente te ih se moze navesti proizvoljan broj puta odvojenih

razmakom.16eng. parent-child17eng. siblings

35

Page 40: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

1 <TextStr ing f o n t f a c e=” Ar ia l ” f o n t s i z e=”10”>

Promjer voda</ TextStr ing>

Prednosti:

• razumljivo covjeku i racunalu

• XML je obicna tekstualna datoteka te je time citljiva na svim platforma

te nisu potrebni nikakvi dodatni programi kako bi se datoteka otvorila

• podrzavanje sirokog skupa znakova tzv. Unicode kodnu stranicu

• proizvoljan odabir naziva

• medunarodno priznat format

Nedostaci:

• podaci mogu postati redundantni

• velicinom datoteke opada i kvaliteta citljivosti

• problem kod velikih datoteka postaju nazivi elemenata, oni moraju

dovoljno precizno opisati svaki pojedini element sto dovodi do dugackih

naziva, a tako i nepreglednost

Formati koji su izvedeni na temelju XML specifikacija, a specijalizirani su

za prikazivanje tocaka, linija i poligona (geometrijskih objekata) su KML i

GML. Sintaksa KML i GML prati XML, ali nazivi oznaka nisu proizvoljni

nego su strogo odredeni specifikacijom (kako bi programi koji citaju formate

znali razlikovati geometrijske tipove podataka).

36

Page 41: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Primjer KML datoteke:

1 <?xml version=” 1 .0 ” encoding=”UTF−8”?>

2 <kml xmlns=” ht tp : //www. openg i s . net /kml /2 .2 ”>

3 <Placemark>

4 <name>Pr ik l j u cak</name>

5 <d e s c r i p t i o n>

6 P l i n s k i p r i k l j u c a k

7 </ d e s c r i p t i o n>

8 <Point>

9 <coo rd ina t e s>−122.082 ,37.421 ,0</ coo rd ina t e s>

10 </ Point>

11 </Placemark>

12 </kml>

Primjer GML datoteke:

1 <?xml version=” 1 .0 ” encoding=”UTF−8”?>

2 <Cijev>

3 <dubina>1 .45</dubina>

4 <promjer>160</ promjer>

5 <gml :centerL ineOf>

6 <gml :L ineSt r ing>

7 <gml:pos>100 200</ gml:pos>

8 <gml:pos>200 200</ gml:pos>

9 </ gml :L ineSt r ing>

10 </ gml :centerL ineOf>

11 </ Ci jev>

37

Page 42: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

3 Prakticni dio

3.1 Implementacija sustava

Katastar vodova prvenstveno je namijenjen ogranicenom broju korisnika koji

imaju ovlastenja za pristup podacima. Podaci prvenstveno sluze kao eviden-

cija tvrtkama za isporuku energetskih dobara. Dosadasnja evidencija je bila

nepregledna i neprakticna za koristenje te podaci nisu bili konzistentni niti u

skladu sa stanjem koje se nalazilo na terenu. Sa povecanjem podataka, sus-

tav je bilo teze odrzavati. Dosadasnji nacin strukturiranja podataka nije bio

u skladu sa pravilima topoloskog modela te zbog toga nikakve GIS analize

nisu bile moguce.

Rekonstrukciju sustava trebalo je napraviti na svim segmentima sucelja i

podataka. Podaci nisu bili topoloski sredeni, a informacije o korisnicima su

se nalazile na drugom mjestu sto je dovodilo do redundancije podataka i ne-

povezanosti.

Sa svim GIS funkcionalnostima koje ce biti sadrzane u AutoCAD-u, dobiti ce

se potpuna mogucnost postavljanja jednostavnih i slozenih upita, podaci ce

biti pohranjeni na jednom mjestu, centralizirani, a time ce se izbjeci redun-

dancija. Svi podaci su pohranjeni u bazu podataka u pripadajucem koordi-

natnom sustavu, te smjesteni u razlicite tablice radi preglednosti. Centraliza-

cijom podataka na jednom mjestu dobili smo visekorisnicki pristup podacima.

Stvaranje ovakvog sustava zahtijeva veliku kolicinu znanja iz prostornih baza

podataka, strukturiranja vektorskih podataka i programiranja u .NET-u. Iz

tog razloga preporucljivo je stvaranje u timskom radu u kojem bi se svakom

38

Page 43: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

pojedincu dodijelio dio zadatka sto bi optimiziralo utroseno vrijeme. Ovaj

rad ce pokazati da je i pojedinac u mogucnosti izvrsiti ovako kompleksnu

zadacu koja objedinjuje vjestine iz razlicitih geodetskih i tehnickih podrucja.

Prelaskom na CAD sa GIS funkcionalnostima, rad je pojednostavljen kreira-

njem aplikacije koja ujedinjuje sve potrebne radnje koje su potrebne prilikom

rada u vodenju evidencije katastra vodova. .

U sljedecim odlomcima opisani su postupci stvaranja takvog okruzenja.

3.2 Ulazni podaci

Ulazni podaci dobiveni su u obliku vektorskih podataka u AutoCAD-ovom

formatu dwg. Prije ubacivanja podataka u prostornu bazu, trebamo ih ”ocistiti”

kako bi se mogla napraviti topologija. Pojam ”ocistiti” podrazumijeva radnje

kao sto su: brisanje linija nulte duzine, brisanje identicnih linija, razdvajanje

objekata koji se sijeku itd.

Ovako sredeni podaci mogu ulaziti u proces provjere podataka za topologiju.

AutoCAD Map 3D za to ima ugradene alate. Procesom stvaranja topologije

program prolazi kroz sve elemente u crtezu provjeravajuci pravila topoloskog

modela podataka. Provjerenim elementima dodaju se novi atributi pomocu

kojih program provodi GIS analize i upite.

Podaci koji u sebi sadrzavaju topologiju ne mogu se direktno prebaciti iz

AutoCAD-a u prostornu bazu podataka. Crtez je potrebno spremiti u for-

mat koji pohranjuje veze izmedu objekata. Jedan od formata je i SDF. SDF

je datotecni format stvoren od strane Autodesk-a koji se ponasa kao pros-

torna baza podataka. Izvorno je podrzan od Autodesk GIS programa kao sto

39

Page 44: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Slika 14: Program za ciscenje crteza

su MapGuide i AutoCAD Map 3D. Trenutna verzija formata je SDF3 koja

se bazira na SQLite3 relacijskom sustavu za upravljanje bazama podataka.

SDF osim prostornih podataka sadrzi pripadajuce atribute te indekse za brze

pretrazivanje.

3.3 Unos u bazu podataka

Naredbom Bulk Copy moguce je prebaciti podatke iz jednog izvora podataka

u drugi. Prije nego pozovemo naredbu Bulk Copy, pomocu Task Panel-a spa-

jamo se na izvore na kojima cemo izvrsiti prebacivanje.

Svako povezivanje na bazu zahtjeva korisnicko ime, lozinku i lokaciju. Kada

se povezujemo na WMS i WFS servise potrebno je upisati web lokaciju, a

40

Page 45: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Slika 15: Program za stvaranje topologije

za povezivanje na datotecne izvore lokaciju datoteke. Uspostavljanjem veze

na izvor moguce je izabrati pojedine slojeve koje zelimo prikazati na karti.

Ukoliko se radi o velikoj kolicini podataka ili zelimo prikazati samo odredeno

podrucje, koristiti cemo dodavanje sa upitom.

Kada smo spojeni na zeljene izvore podataka, pozivamo naredbu Bulk Copy.

41

Page 46: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Slika 16: Prikaz Task Panel-a

U prozoru Bulk Copy naredbe potrebno je odabrati atribute koje zelimo

kopirati u prostornu bazu podataka.

42

Page 47: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Slika 17: Dostupni servisi

3.4 Stilovi

Stiliziranjem uredujemo objekte na nacin kojim zelimo da se prikazu na karti.

Postoje razliciti nacini prikazivanja podataka: mozemo prikazati jednu vrstu

objekta na jednoj visini pogleda, a na drugoj drugi, povecavati ili smanjivati

velicinu objekta promjenom visine pogleda, prikazati tekst uz objekt itd.

Tockaste objekte zamjenjujemo blokovima. Blok je skupina geometrijskih

oblika grupiranih u jednu zasebnu cjelinu. Stiliziranje nam omogucuje da na

crtezu prikazemo atribute koji su vezani uz objekte. Svim tim nacinima pri-

kazivanja objekata doprinosimo kvalitetnijem i preglednijim prikazom karte.

Napomenimo da su podaci koji se prikazuju u crtezu samo reprezentacija

podataka iz baze i nisu sastavni dio crteza. Svako modificiranje objekata

reflektira se na podatke u bazi.

43

Page 48: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Slika 18: Program Bulk Copy

Svim atributima, osim koordinata objekta, mozemo pristupiti unutar apli-

kacije pozivanjem tablice Data Table. U tablici su sadrzani svi atributi,

slozeni po slojevima koji se nalaze u karti. Osim pregledavanja, moguce je

pretrazivati, izmjenjivati i brisati podatke. Odabirom retka u tablici (sto

oznacava jedan objekt), program ce izolirati objekt na karti kako bismo mo-

gli vidjeti gdje se on nalazi. Svi elementi koji se nalaze u AutoCAD crtezu

spremljeni su u privremenu memoriju koja se brisu nakon gasenja programa.

Spremanjem pojedinacnih slojeva kao layer datoteku, moguce je ucitati sve

prethodne radnje u jednom koraku. Layer datoteka je XML datoteka koja

44

Page 49: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Slika 19: Nestilizirani podaci

Slika 20: Prikaz tablice Data Table

sadrzi sve definicije o pojedinom sloju. Struktura je strogo odredena te se

ne mogu proizvoljno dodavati novi elementi. Imena elemenata su unaprijed

45

Page 50: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

predodredena kako bi program mogao procitati datoteku. Osim definicije o

prikazu sloja, datoteka sadrzi i podatke o spajanju na servise. Najcesce se

mogu naci povjerljive informacije kao sto su lokacija posluzitelja, korisnicko

ime i lozinka. Ucitavanje layer datoteke vrsimo pomocu prethodno opisane

palete Task Panel.

Prilikom ubacivanja podataka moramo se pridrzavati topoloskih pravila kako

bi se ocuvala struktura podataka. Prostorna baza podataka prilikom upisa

podataka nije u mogucnosti provjeravati topologiju podataka novo nastalih

objekata, te smo primorani pridrzavati se nekoliko pravila:

3.5 Aplikacije u CAD okruzenju

Aplikacije kao sto su AutoCAD Map, pogotovo za rad u GIS okruzenju, nisu

jednostavne za koristenje obicnim korisnicima naviknutim na CAD. Potrebno

je odredeno iskustvo i shvacanje sto koja funkcija radi kako bi mogli postici

odredeni rezultat. Cesto se dogada da se odredeni broj naredbi stalno po-

navlja sto dovodi do gubitka vremena. Centraliziranjem funkcija na jedno

mjesto i automatiziranjem radnji postici ce se veca efikasnost u radu i sma-

njiti mogucnost pogreske. Automatizaciju cemo postici izradom programa

koji ce se povezivati s AutoCAD Map naredbama. Program moze biti vi-

zualnog ili linijskog karaktera. Linijski programi najcesce su jednostavniji

programi ponavljajucih radnji, bez puno dodatnog konfiguriranja. Vizualni

program mogu biti izradeni u skladu grafickog sucelja operativnoga sustava

ili se mogu pojaviti kao sastavni dio AutoCAD-a u obliku palete. Programi

se pokrecu pozivanjem imena naredbi u komandnoj liniji. Kao sto je prije

napomenuto, programi se izraduju u ObjectARX ili VLISP programskom

46

Page 51: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Tablica 4: Topoloska pravila

Opis Slika

Dvije linije istog sloja ne smiju sepreklapati

Linije istog sloja ne smiju se sjeci.U tocci presjecista, linije morajubiti razlomljene

Linije istog sloja moraju se spojitiu krajnjim tockama

Linije istog sloja moraju se dodiri-vati samo u krajnjim tockama

Linije istog sloja ne smiju sjecisame sebe

jeziku. U ovom radu koristiti ce se ObjectARX programsko rjesenje, tocnije

C# jezik. Aplikacije se razvijaju u programskom paketu Microsoft Visual

Studio Express. Da bismo mogli pozvati AutoCAD objekte i funkcije po-

trebno se u projektu referencirati na dvije datoteke, acmgd.dll i acdbmgd.dll.

Acmgd.dll je modul u kojem su opisane sve metode i klase koje se mogu

koristiti prilikom programiranja aplikacija za prosirenje AutoCAD-a. Acd-

47

Page 52: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

bmgd.dll je modul slican prethodnom, ali se odnosi na klase i funkcije za

manipulaciju objektima koji se nalaze unutar baze AutoCAD crteza. DLL

datoteka se izraduje pretvaranjem izvornog koda u izvrsni. Prije samog po-

kretanja naredbe, aplikaciju je potrebno ucitati u program naredbom netload.

Primjer jednostavne AutoCAD aplikacije napisane u .NET-u:

1 using System ;

2 using Autodesk .AutoCAD. Runtime ;

3 using Autodesk .AutoCAD. EditorInput ;

4

5 public class Primjer {

6 Editor ed = Appl i ca t ion . DocumentManager .

MdiActiveDocument . Editor ;

7 [ CommandMethod( ” primjerPrograma ” ) ]

8 public void primjerPrograma ( )

9 {

10 ed . WriteMessage ( ” He l lo World ! ” ) ;

11 }

12 }

Pokretanjem naredbe ”primjerPrograma” iz komandne linije ispisati ce se

poruka ”Hello World!”.

1 [ CommandMethod( ” primjerPrograma ” ) ]

CommandMethod je tzv. atribut metode. Atribut oznacava metodu kao

izvrsnu sto znaci da se ona moze pozvati unutar AutoCAD-a.

48

Page 53: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

1 ed . WriteMessage ( ” He l lo World ! ” ) ;

Na objektu Editor, koji je prethodno definiran kao ”ed”, pozivamo metodu

”WriteMessage” koja kao rezultat ispisuje tekst na ekranu u komandnoj liniji.

3.6 Struktura programa za aplikaciju projekta

AutoCAD crtez se ponasa kao baza podataka u koju se spremaju objekti.

Svako pristupanje ili modificiranje objekata provodi se uz pomoc transakcije.

Transakcija je skup operacija koji prevodi bazu podataka iz jednog konzis-

tentnog stanja u drugo konzistentno stanje. Sustav za upravljanje bazom

podataka mora zadovoljiti cetiri tzv. ACID uvjeta da bi omogucio pravilan

rad s transakcijama:

• Atomicnost transakcije18: transakcije nije moguce dijeliti na ele-

mentarne transakcije

• Konzistentnost19: baza podataka uvijek mora zadrzati konzistentno

stanje

• Izolacija20: dok transakcija nije izvrsena, njezine operacije ne utjecu

na druge, istodobno izvrsavane transkacije

• Trajnost21: nakon sto je transakcija izvrsena, promjene ostaju trajno

pohranjene

18eng. Atomicity19eng. Consistency20eng. Isolation21eng. Durability

49

Page 54: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Primjer transakcije:

1 using ( Transact ion t rans = db . TransactionManager .

Star tTransact ion ( ) ){

2 . . .

3 t rans . Commit ( ) ;

4 }

Svaki put kad se objekt Transaction instancira, mora se na kraju opera-

cije ”unistiti” pomocu naredbe Dispose() ili koristenjem naredbe using koja

automatski na kraju unistava objekt. Ako su svi uvjeti uspjesnosti operacija

nad crtezom zadovoljeni, sve promjene potvrdujemo naredbom Commit(), u

suprotnom nikakve promjene nece biti pohranjene. Dogodi li se slucaj da

zelimo povuci sve operacije koje smo uputili na izvrsavanje, pozvat cemo na-

redbu RollBack().

Primjer dodavanja linije u crtez:

1 using ( Transact ion acTrans = acCurDb . TransactionManager

. Star tTransact ion ( ) ){

2 . . .

3 BlockTableRecord acBlkTblRec ;

4 acBlkTblRec = acTrans . GetObject ( acBlkTbl [

BlockTableRecord . ModelSpace ] ,

5 OpenMode . ForWrite ) as

BlockTableRecord ;

6 Line acLine = new Line (new Point3d (5 , 5 , 0) ,

7 new Point3d (12 , 3 , 0) ) ;

8 acBlkTblRec . AppendEntity ( acLine ) ;

9 acTrans . AddNewlyCreatedDBObject ( acLine , true ) ;

50

Page 55: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

10 acTrans . Commit ( ) ;

11 }

• BlockTableRecord je objekt pomocu kojeg pristupamo svim objek-

tima u AutoCAD-u

• novi objekt stvaramo pomocu klase Line

• novonastalu liniju metodom AppendEntity() dodajemo u bazu poda-

taka crteza

• potvrdujemo upis objekta metodom AddNewlyCreatedDBObject()

• transakciju potvrdujemo metodom Commit()

Ucitavanje layer datoteke:

1 AcMapMap map = AcMapMap. GetCurrentMap ( ) ;

2 . . .

3 map . LoadLayer ( ” putanja datoteke ” ) ;

• AcMapMap je klasa koja pozivanjem njegovog konstrukora GetCur-

rentMap instancira objekt map koji sadrzi sve informacije i metode

trenutne karte

• map.LoadLayer je metoda objekta map koja ucitava slojeve koji su

definirani u datotekama sa ekstenzijom layer

Ucitavanjem slojeva na ovaj nacin, preko datoteke, dobijemo potpuno stilizi-

rane slojeve na karti. Oznacavanje pojedinog objekta moguce je dobiti prikaz

svih atributa povezanih s njim. Svaki objekt ima identifikacijski atribut (ID)

pomocu kojeg se razlikuje od ostalih objekata u istom sloju.

51

Page 56: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

1 PromptSe lect ionResult psr = doc . Editor . GetSe l e c t i on ( ) ;

2 . . .

3 MgSelectionBase s e l e k c i j a = AcMapFeatureEntityService .

GetFeatures ( s s [ 0 ] . GetSubent i t i e s ( ) ) ;

4 . . .

5 MgFeatureReader reader = s e l e k c i j a . GetSe lec tedFeatures (

d e f i n i c i j a s l o j a , ime s l o j a , fa l se ) ;

6 . . .

7 while ( r eader . ReadNext ( ) )

8 reader . GetInt32 ( ”ID” ) ) ;

• PromptSelectionResult je klasa koja instancira objekt ”psr” koji od

korisnika zahtjeva odabiranje objekata na karti

• MgSelectionBase je klasa koja razabire samo jedan objekte iz prethodne

selekcije

• reader je objekt od klase MgFeatureReader kojim ucitavamo objekt

u reader pomocu kojeg mozemo procitati specificni atribut vezan uz

selektirani objekt; prilikom dohvacanja atributa, treba paziti na vrstu

podatka (najcesce metode su GetInt32, GetInt64 i GetString)

Atributne podatke mozemo pokazati i izvan AutoCAD okruzenja tako da

posaljemo upit u bazu i rezultate prikazemo u tablici. Upiti se mogu slati kao

SQL naredbe tj. SELECT naredbe ili zahtjev za izvrsavanje stored procedure-

a.

Primjer upitau obliku SELECT naredbe:

52

Page 57: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

1 SqlConnect ion conn = new SqlConnect ion ( scb .

Connect ionStr ing )

2 {

3 conn . Open ( ) ;

4 SqlCommand cmd = new SqlCommand( ”dbo . sp GetTable ”

, conn )

5 {

6 cmd . CommandType = CommandType . StoredProcedure ;

7 cmd . Parameters . Add(new SqlParameter ( ” @table ” ,

imeS lo ja ) ) ;

8 . . .

9 conn . Close ( ) ;

• SqlConnection je klasa koja instancira objekt za spajanje na SQL bazu

te pritom kao argument uzima parametre za spajanje na bazu

• parametri se sastoje od korisnickog imena, lozinke, ime baze i lokacije

posluzitelja

• spajanje na bazu izvrsava se pozivanjem metode Open()

• zavrsetkom rada sa bazom, veza se mora zatvorit pozivanjem naredbe

Close()

• SqlCommand je klasa koja instancira objekta za izvrsavanje naredbi.

Argument konstruktora je ime stored procedure i objekt spajanja (conn)

• posebno se mora naglasiti da li se radi o pozivanju naredbe ili proce-

dure. Prima li procedura argumente, njih cemo dodati uz pomoc klase

SqlParameter

53

Page 58: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Primjer upita u obliku pozivanja stored procedure:

1 . . .

2 s t r i n g cmd UpisUBazu = Str ing . Format ( ”update [ { 0 } ] s e t

[ { 1 } ] = {2} where id = {3}” , t a b l i c a ,

p o l j e E d i t i r a n j e , v r i j e d n o s t P o l j a , id ) ;

3 using (SqlCommand cmd = new SqlCommand( cmd UpisUBazu ,

conn ) )

4 {

5 cmd . ExecuteNonQuery ( ) ;

6 }

7 . . .

8 conn . Close ( ) ;

• cmd UpisUBazu predstavlja naredbu koja ce se proslijediti kao upit u

bazu

• ako upit koji prosljedujemo ne vraca rezultat, kao u primjeru, koristi

se naredba ExecuteNonQuery() za izvrsavanje upita nad bazom

Korisnicima katastra osim pregledavanja podataka moraju biti omogucene

radnje kao sto su dodavanje, modificiranje i brisanje podataka. Dodavanje

se vrsi odabirom lokacije ili lokacija (ovisno o vrsti objekta) na kojim zelimo

dodati objekt.

Primjer dodavanje tockastog objekta:

1 I I n s e r t insertNaredba = conn . CreateCommand(CommandType .

CommandType Insert ) as I I n s e r t ;

2 . . .

54

Page 59: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

3 FgfGeometryFactory f a c t o r y = new FgfGeometryFactory ( ) ;

4 pozTocke = f a c t o r y . CreatePositionXY ( tocka .X, tocka .Y) ;

5 I D i r e c t P o s i t i o n poz = I D i r e c t P o s i t i o n . Add( pozTocke ) ;

6 IPo int tocka = f a c t o r y . CreatePoint ( poz ) ;

7 DoubleValue r o t a c i j a F e a t u r e C l a s s = new DoubleValue (

r o t a c i j a ) ;

8 insertNaredba . PropertyValues . Add(new PropertyValue (

at r ibut , r o t a c i j a F e a t u r e C l a s s ) ) ;

9 GeometryValue geometr i j a = new GeometryValue ( f a c t o r y .

GetFgf ( tocka ) ) ;

10 insertNaredba . PropertyValues . Add(new PropertyValue ( ”

geom” , geometr i j a ) ) ;

11 insertNaredba . Execute ( ) ;

• IInsert je klasa pomocu koje vrsimo upisivanje objekta u bazu

• FgfGeometryFactory je klasa vrsi preoblikovanje koordinata objekta u

zapis razumljiv IDirectPosition klasi

• IDirectPosition je klasa pomocu koje se instancira objekt koji sadrzi

koordinate objekta koji zelimo upisati

• ako objekt osim geometrije (koordinate) sadrzi i druge atribute, njih

cemo dodati pomocu konstruktora PropertyValue pazeci pritom na vr-

stu tipa podatka

• dodavanje objekta vrsimo pozivanjem metode Execute nad objektom

IInsert klase

Modificiranje i brisanje objekta zahtijeva poznavanje njegovog identifikacij-

skog broja kako bismo ga mogli izolirati od ostalih objekata u sloju.

55

Page 60: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Primjer brisanja objekta:

1 IDe l e t e deleteNaredba = conn . CreateCommand(CommandType .

CommandType Delete ) as IDe l e t e ;

2 deleteNaredba . S e t F i l t e r ( ” ( ID = 45) ” ) ;

3 deleteNaredba . Execute ( ) ;

• IDelete je klasa pomocu koje brisemo objekte u bazi

• metoda SetFilter izolira specificni objekt pomocu njegovog identifika-

cijskog broja

• metodom Execute izvrsavamo brisanje objekta iz baze

Ponekad se na karti moze naci toliko slojeva da karta postaje nepregledna.

Iskljucivanjem vidljivosti nepotrebnih slojeva povecavamo preglednost karte.

1 MgLayerCol lect ion l a y e r s = map . GetLayers ( ) ;

2 . . .

3 l a y e r . S e t V i s i b l e ( fa l se ) ;

• MgLayerCollection je klasa koja sadrzi skup slojeva

• metoda SetVisible odreduje vidljivost pojedinacnog sloja

Odlucimo li se iz nekog razloga izbrisati slojeve tj. prekinuti veze sa bazom,

mozemo to uciniti na sljedeci nacin:

56

Page 61: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

1 MgLayerCol lect ion l a y e r s = map . GetLayers ( ) ;

2 MgLayerBase l a y e r = l a y e r s [ 0 ] ;

3 l a y e r s . Remove( l a y e r ) ;

• metoda Remove() koju pozivamo na objektu layers brise pojedinacni

sloj iz skupa, a kao argument uzima definiciju jednog sloja

Pokretanje svake aplikacije pocinje njegovim ucitavanjem u AutoCAD Map.

Ucitavanje se izvodi pomocu prethodno spomenute naredbe netload. Jed-

nom kad se program ucita u program ne moze se ponovo ucitati za vrijeme

rada aplikacije ako je doslo do promjene u ucitanom programu. Nakon sto je

program ucitan, dijelovi programa se pozivaju upisivanjem nazivom metode

koje imaju atribut izvrsnog potprograma (atribut CommandMethod).

1 [ CommandMethod( ”program” ) ]

2 public void program ( )

3 . . .

4 FormaPrograma . Show ( ) ;

5 . . .

Pozivanjem naredbe ”energo” prikazuje se glavni program, paleta, u sklopu

programa Autodesk Map-a.

57

Page 62: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Slika 21: Izgled aplikacije

4 Zakljucak

Svjedoci smo naglog porasta prostornih informacija koje moramo pohraniti

kako bi sto lakse mogli shvatiti i iskoristiti prostor koji se nalazi oko nas. Poje-

dini GIS sustavi nam omogucuju da na jedno mjesto pohranimo podatke koje

kasnije mozemo lako dodavati, pretrazivati, modificirati i te na njima pro-

voditi analize. Prosirenjem AutoCAD-a GIS funkcionalnostima dobili smo

upotpunjeni sustav sa svim mogucnostima GIS i CAD aplikacije. Aplikacije

su dizajnirane u svrhu zadovoljenja najsireg kruga korisnika kako bi oni mo-

gli sto lakse postici zeljeni rezultat. Nekada implementirane funkcije unutar

gotovih aplikacija nisu dovoljne ili su komplicirane za koristenje te moramo

posezati za alatima za prosirenje. Iako prosirenja gotovih sustava zahtijevaju

dobro poznavanje odredenih programskih jezika i baza podataka, cjelokupan

trud moze uveliko ubrzati i pojednostaviti svakodnevne procese. Implemen-

tiranjem vlastitih programa u AutoCAD Map aplikaciju pojednostaviti cemo

proceduru dobivanja rezultata te pribliziti korisnike aplikaciji.

58

Page 63: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

5 Dodaci

1 using System ;

2 using System . C o l l e c t i o n s ;

3 using OSGeo .FDO;

4 using OSGeo .FDO. Connections ;

5 using OSGeo .FDO. Commands ;

6 using OSGeo .FDO. Geometry ;

7 using OSGeo .FDO. C l i e n t S e r v i c e s ;

8 using OSGeo .FDO. Express ion ;

9 using OSGeo .FDO. Commands . Feature ;

10 using Autodesk .AutoCAD. Geometry ;

11 using Autodesk .AutoCAD. EditorInput ;

12 using Autodesk .AutoCAD. A p p l i c a t i o n S e r v i c e s ;

13 using OSGeo . MapGuide ;

14 using Autodesk . Gis .Map. Platform ;

15 using Autodesk . Gis .Map. Platform . Inte rop ;

16

17 namespace NoviEnergo

18 {

19 class J i g L i n i j e : DrawJig

20 {

21 public Point3dCo l l e c t i on ko lekc i jaTocaka = new Point3dCo l l e c t i on

( ) ;

22 private Point3dCo l l e c t i on tempKolekci ja = new Point3dCo l l e c t i on

( ) ;

23 public Point3d pocetnaTocka ;

24 public Point3d krajnjaTocka ;

25

26 public J i g L i n i j e ( Point3d pocTocka ) {

27 this . pocetnaTocka = pocTocka ;

28 this . ko l ekc i jaTocaka . Add( pocTocka ) ;

29 this . krajnjaTocka = pocTocka ;

59

Page 64: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

30 }

31 protected o v e r r i d e bool WorldDraw( Autodesk .AutoCAD.

Graph i c s In t e r f a c e . WorldDraw draw ) {

32 tempKolekci ja . Clear ( ) ;

33 f o r each ( Point3d p in ko lekc i jaTocaka )

34 {

35 tempKolekci ja . Add(p) ;

36 }

37 tempKolekci ja . Add( krajnjaTocka ) ;

38 try

39 {

40 draw . Geometry . P o l y l i n e ( tempKolekcija , Vector3d . ZAxis , new IntPtr

(1 ) ) ;

41 }

42 catch ( System . Exception )

43 {

44 return fa l se ;

45 }

46 return true ;

47 }

48

49 protected o v e r r i d e SamplerStatus Sampler ( JigPrompts prompts )

50 {

51 JigPromptPointOptions j igOpt = new JigPromptPointOptions ( ”\

nOdaberi drugu tocku : ” ) ;

52 PromptPointResult r e s u l t = prompts . AcquirePoint ( j igOpt ) ;

53 i f ( r e s u l t . Status != PromptStatus .OK)

54 return SamplerStatus . Cancel ;

55 i f ( r e s u l t . Value . IsEqualTo ( ko l ekc i jaTocaka [ ko l ekc i jaTocaka . Count

− 1 ] ) )

56 return SamplerStatus . NoChange ;

57 krajnjaTocka = r e s u l t . Value ;

58 return SamplerStatus .OK;

60

Page 65: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

59 }

60 }

61

62 class Manipulac i jaFeatureClassom

63 {

64 public enum Layer i

65 {

66 dubine ,

67 fasadni2 ,

68 kape ,

69 kond lonac ,

70 l u l e ,

71 redk se t ,

72 sed la ,

73 spo jn i c e ,

74 t komad ,

75 vodovi ,

76 za s t i tna ,

77 zasun

78 }

79 public enum T Komad Simboli : int{

80 T Simbol 1 = 1 ,

81 T Simbol 2 = 2 ,

82 T Simbol 3 = 3 ,

83 T Simbol 12 = 12 ,

84 T Simbol 13 = 13 ,

85 T Simbol 23 = 23 ,

86 T Simbol 4 = 4

87 }

88

89 public Hashtable S e l e k c i j a F e a t u r e C l a s s ( Layer i l a y e r ) {

90 Hashtable a t r i b u t i = new Hashtable ( ) ;

61

Page 66: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

91 Document doc = Autodesk .AutoCAD. A p p l i c a t i o n S e r v i c e s . App l i ca t ion .

DocumentManager . MdiActiveDocument ;

92 MgSelectionBase s e l e k c i j a ;

93 MgFeatureService f e a t u r e s e r v i c e ;

94 s t r i n g schema ime ;

95 s t r i n g c l a s s i m e ;

96 MgClassDef in i t ion d e f i n i c i j a k l a s e ;

97 MgFeatureReader reader ;

98 PromptSelect ionOptions pso = new PromptSelect ionOptions ( ) ;

99 pso . S ingleOnly = true ;

100 pso . S ing l eP ickInSpace = true ;

101 PromptSe lect ionResult psr = doc . Editor . GetSe l e c t i on ( ) ;

102 i f ( psr . Status != PromptStatus .OK)

103 {

104 doc . Editor . WriteMessage ( ”\nPrekinuta a k c i j a ” ) ;

105 return n u l l ;

106 }

107 S e l e c t i o n S e t s s = psr . Value ;

108 i f ( AcMapFeatureEntityService . GetEntityType ( s s [ 0 ] . ObjectId ) ==

EntityType . BulkEntity )

109 {

110 s e l e k c i j a = AcMapFeatureEntityService . GetFeatures ( s s [ 0 ] .

GetSubent i t i e s ( ) ) ;

111 MgLayerBase l e r i = s e l e k c i j a . GetLayers ( ) [ 0 ] ;

112 f e a t u r e s e r v i c e = AcMapServiceFactory . GetServ ice ( MgServiceType .

FeatureServ i c e ) as MgFeatureService ;

113 schema ime = ”dbo” ;

114 c l a s s i m e = l e r i . FeatureClassName ;

115 d e f i n i c i j a k l a s e = f e a t u r e s e r v i c e . GetC la s sDe f in i t i on (new

MgResource Ident i f i e r ( l e r i . FeatureSourceId ) , schema ime ,

c l a s s i m e ) ;

116 reader = s e l e k c i j a . GetSe l ec tedFeatures ( l e r i , c l a s s ime , fa l se ) ;

117 while ( reader . ReadNext ( ) )

62

Page 67: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

118 i f ( l a y e r . ToString ( ) . Equals ( ” f a s a d n i ” ) | | l a y e r . ToString ( ) .

Equals ( ” l u l e ” ) | | l a y e r . ToString ( ) . Equals ( ” kond lonac ” ) | |

l a y e r . ToString ( ) . Equals ( ” z a s t i t n a ” ) )

119 a t r i b u t i . Add( ”ID” , reader . GetInt32 ( ”ID” ) ) ;

120 else

121 i f ( l a y e r . ToString ( ) . Equals ( ” r e d k s e t ” ) | | l a y e r . ToString ( ) .

Equals ( ”kape” ) | | l a y e r . ToString ( ) . Equals ( ” s ed l a ” ) | | l a y e r .

ToString ( ) . Equals ( ” s p o j n i c e ” ) | | l a y e r . ToString ( ) . Equals ( ”

zasun ” ) )

122 {

123 a t r i b u t i . Add( ”ID” , reader . GetInt32 ( ”ID” ) ) ;

124 i f ( l a y e r . ToString ( ) . Equals ( ”kape” ) | | l a y e r . ToString ( ) . Equals ( ”

zasun ” ) )

125 a t r i b u t i . Add( ”ROTATION” , reader . GetDouble ( ”ROTATION” ) ) ;

126 else

127 a t r i b u t i . Add( ” ro t ” , r eader . GetDouble ( ” ro t ” ) ) ;

128 }

129 else

130 i f ( l a y e r . ToString ( ) . Equals ( ” vodovi ” ) )

131 {

132 a t r i b u t i . Add( ”ID” , reader . GetInt32 ( ”ID” ) ) ;

133 a t r i b u t i . Add( ” promjer ” , r eader . GetInt32 ( ” promjer ” ) ) ;

134 }

135 else

136 i f ( l a y e r . ToString ( ) . Equals ( ” dubine ” ) )

137 {

138 a t r i b u t i . Add( ”ID” , reader . GetInt32 ( ”ID” ) ) ;

139 a t r i b u t i . Add( ”DUBINE” , reader . GetDouble ( ”DUBINE” ) ) ;

140 a t r i b u t i . Add( ”ROTATION” , reader . GetDouble ( ”ROTATION” ) ) ;

141 }

142 else

143 i f ( l a y e r . ToString ( ) . Equals ( ”t komad” ) )

144 {

63

Page 68: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

145 a t r i b u t i . Add( ”ID” , reader . GetInt32 ( ”ID” ) ) ;

146 a t r i b u t i . Add( ” ro t ” , r eader . GetDouble ( ” ro t ” ) ) ;

147 a t r i b u t i . Add( ” s imbol ” , r eader . GetInt64 ( ” s imbol ” ) ) ;

148 }

149 reader . Close ( ) ;

150 return a t r i b u t i ;

151 }

152 else

153 {

154 Autodesk .AutoCAD. A p p l i c a t i o n S e r v i c e s . App l i ca t ion . ShowAlertDialog

( ” Kr iv i ob jekt ” ) ;

155 return n u l l ;

156 }}

157

158 /// <summary>

159 /// Metoda za dodavanje fa sadn ih ormarica , l u l a ,

k onden zac i j s k i h lonaca i z a s t i t n i h l i n i j a

160 /// </summary>

161 /// <param name=”geom”>Geometrija</param>

162 public void DodavanjeFeatureClass ( Layer i f e a t u r e C l a s s ) {

163 s t r i n g featureClassName = ”dbo : ” + f e a t u r e C l a s s ;

164 I I n s e r t insertNaredba = conn . CreateCommand(CommandType .

CommandType Insert ) as I I n s e r t ;

165 insertNaredba . SetFeatureClassName ( featureClassName ) ;

166 FgfGeometryFactory f a c t o r y = new FgfGeometryFactory ( ) ;

167 i f ( f e a t u r e C l a s s . ToString ( ) . Equals ( ” z a s t i t n a ” ) )

168 {

169 I L i ne S t r i n g l i n i j a = f a c t o r y . CreateL ineStr ing ( pozKo lekc i j a ( r e f

f ac to ry , fa l se ) ) ;

170 GeometryValue geomValue = new GeometryValue ( f a c t o r y . GetFgf (

l i n i j a ) ) ;

171 insertNaredba . PropertyValues . Add(new PropertyValue ( ”geom” ,

geomValue ) ) ;

64

Page 69: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

172 insertNaredba . Execute ( ) ;

173 }

174 else

175 {

176 I D i r e c t P o s i t i o n poz = pozKolekc i j a ( r e f f ac to ry , true ) [ 0 ] ;

177 IPoint tocka = f a c t o r y . CreatePoint ( poz ) ;

178 GeometryValue geomValue = new GeometryValue ( f a c t o r y . GetFgf ( tocka

) ) ;

179 insertNaredba . PropertyValues . Add(new PropertyValue ( ”geom” ,

geomValue ) ) ;

180 insertNaredba . Execute ( ) ;

181 }

182 RefreshLayer ( f e a t u r e C l a s s . ToString ( ) ) ;

183 }

184

185 /// <summary>

186 /// Metoda za e d i t i r a n j e fa sadn ih ormarica , l u l a ,

k onden zac i j s k i h lonaca i z a s t i t n i h l i n i j a

187 /// </summary>

188 /// <param name=”f ea t u r eC l a s s”></param>

189 /// <param name=”geom”></param>

190 public void Ed i t i r an j eFea tu r eC la s s ( Layer i f e a tu r eC la s s , s t r i n g

ID) {

191 s t r i n g f i l t e r = St r ing . Format ( ” ( ID = {0}) ” , ID) ;

192 s t r i n g featureClassName = ”dbo : ” + f e a t u r e C l a s s ;

193 IUpdate updateNaredba = conn . CreateCommand(CommandType .

CommandType Update ) as IUpdate ;

194 updateNaredba . SetFeatureClassName ( featureClassName ) ;

195 updateNaredba . S e t F i l t e r ( f i l t e r ) ;

196 FgfGeometryFactory f a c t o r y = new FgfGeometryFactory ( ) ;

197 i f ( f e a t u r e C l a s s . ToString ( ) . Equals ( ” z a s t i t n a ” ) )

198 {

65

Page 70: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

199 I L i ne S t r i n g l i n i j a = f a c t o r y . CreateL ineStr ing ( pozKo lekc i j a ( r e f

f ac to ry , fa l se ) ) ;

200 GeometryValue geomValue = new GeometryValue ( f a c t o r y . GetFgf (

l i n i j a ) ) ;

201 updateNaredba . PropertyValues . Add(new PropertyValue ( ”geom” ,

geomValue ) ) ;

202 updateNaredba . Execute ( ) ;

203 }

204 else

205 {

206 I D i r e c t P o s i t i o n poz = pozKolekc i j a ( r e f f ac to ry , true ) [ 0 ] ;

207 IPoint tocka = f a c t o r y . CreatePoint ( poz ) ;

208 GeometryValue geomValue = new GeometryValue ( f a c t o r y . GetFgf ( tocka

) ) ;

209 updateNaredba . PropertyValues . Add(new PropertyValue ( ”geom” ,

geomValue ) ) ;

210

211 updateNaredba . Execute ( ) ;

212 }

213 RefreshLayer ( f e a t u r e C l a s s . ToString ( ) ) ;

214 }

215

216 /// <summary>

217 /// Br i san je f ea ture−a

218 /// </summary>

219 /// <param name=”ID”></param>

220 /// <param name=”f ea t u r eC l a s s”></param>

221 public void Br i san j eFeatureC la s s ( Layer i f e a tu r eC la s s , s t r i n g ID)

{

222 s t r i n g S f ea tu r eC la s s = f e a t u r e C l a s s . ToString ( ) ;

223 i f ( f e a t u r e C l a s s . Equals ( ”t komad” ) ) S f ea tu r eC la s s = ”t−komad” ;

224 s t r i n g featureClassName = ”dbo : ” + S f ea tu r eC la s s ;

225 s t r i n g f i l t e r = St r ing . Format ( ” ( ID = {0}) ” , ID) ;

66

Page 71: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

226 i f ( f e a t u r e C l a s s . Equals ( Layer i . f a sadn i2 ) )

227 f i l t e r = St r ing . Format ( ” ( i d f o = {0}) ” , ID) ;

228 IDe l e t e deleteNaredba = conn . CreateCommand(CommandType .

CommandType Delete ) as IDe l e t e ;

229 deleteNaredba . SetFeatureClassName ( featureClassName ) ;

230 deleteNaredba . S e t F i l t e r ( f i l t e r ) ;

231 deleteNaredba . Execute ( ) ;

232 RefreshLayer ( S f ea tu r eC la s s ) ;

233 }

234

235 private D i r e c t P o s i t i o n C o l l e c t i o n pozKolekc i j a ( r e f

FgfGeometryFactory fac tory , bool tockas t iOb jek t ) {

236 D i r e c t P o s i t i o n C o l l e c t i o n pozKolekc i j a = new

D i r e c t P o s i t i o n C o l l e c t i o n ( ) ;

237 I D i r e c t P o s i t i o n pozTocke ;

238 Point3d tocka = new Point3d ( ) ;

239 i f ( tockas t iOb j ek t )

240 {

241 PromptPointOptions promptaZaLokFeatureObjekta = new

PromptPointOptions ( ”\nOdaberi l o k a c i j u : ” ) ;

242 PromptPointResult rezPromptaZaLokFeatureObjekta = ed . GetPoint (

promptaZaLokFeatureObjekta ) ;

243 i f ( rezPromptaZaLokFeatureObjekta . Status != PromptStatus .OK)

244 return pozKolekc i j a ;

245 tocka = rezPromptaZaLokFeatureObjekta . Value ;

246 pozTocke = f a c t o r y . CreatePositionXY ( tocka .X, tocka .Y) ;

247 pozKo lekc i j a . Add( pozTocke ) ;

248 return pozKolekc i j a ;

249 }

250 else

251 {

252 PromptPointOptions promptPoint = new PromptPointOptions ( ”Odaberi

tocku : ” ) ;

67

Page 72: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

253 PromptPointResult rezPrompta = ed . GetPoint ( promptPoint ) ;

254 i f ( rezPrompta . Status != PromptStatus .OK)

255 return pozKolekc i j a ;

256 pozKo lekc i j a . Add( f a c t o r y . CreatePositionXY ( rezPrompta . Value .X,

rezPrompta . Value .Y) ) ;

257 J i g L i n i j e j i g L i n i j e = new J i g L i n i j e ( rezPrompta . Value ) ;

258 while ( true )

259 {

260 PromptPointResult r e s = ed . Drag ( j i g L i n i j e ) as PromptPointResult ;

261 i f ( r e s . Status != PromptStatus .OK)

262 break ;

263 j i g L i n i j e . ko l ekc i jaTocaka . Add( r e s . Value ) ;

264 tocka = r e s . Value ;

265 pozTocke = f a c t o r y . CreatePositionXY ( tocka .X, tocka .Y) ;

266 pozKo lekc i j a . Add( pozTocke ) ;

267 }

268 return pozKolekc i j a ;

269 }}

270

271 public stat ic void RefreshLayer ( s t r i n g l e r )

272 {

273 Document doc = Appl i ca t ion . DocumentManager . MdiActiveDocument ;

274 doc . Editor . Regen ( ) ;

275 using ( DocumentLock docLock = doc . LockDocument ( ) ) {

276 AcMapMap map = AcMapMap. GetCurrentMap ( ) ;

277 MgLayerCol lect ion l a y e r s = map . GetLayers ( ) ;

278 fo r each ( MgLayerBase l a y e r in l a y e r s ) {

279 i f ( l a y e r .Name . Equals ( l e r ) )

280 {

281 l a y e r . ForceRefresh ( ) ;

282 break ;

283 }}}}}}

68

Page 73: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Literatura

Autodesk. Autocad map 3d user guide.

http://docs.autodesk.com/MAP/2011/ENU/AutoCADap3D 2011 HTML

Help/indexUsersGuideHTML.html?url=./filesUsersGuideHTML/

WS1a9193826455f5ff5f7e8f111d4851871-5a8d.htm,topicNumber=

UsersGuideHTMLd0e59670, 8 2010a.

Autodesk. Objectarc. http://usa.autodesk.com/adsk/servlet/index?site

ID=123112&id=773204, 8 2010b.

Autodesk. Visual lisp. http://usa.autodesk.com/adsk/servlet/index?site

ID=123112&id=770237, 8 2010c.

Blog. Data model. http://masumbillah.tripod.com/thesis/013.htm, 8 2010a.

Blog. Cad and gis. http://cadngis.blogspot.com/2010/07/making-design-

data-gis-ready.html, 8 2010b.

Omnisdata Ltd. Gis cloud. http://www.giscloud.com/login, 8 2010a.

Omnisdata Ltd. Gis cloud. http://www.giscloud.com/about/, 8 2010b.

Microsoft. Sql stored procedures. http://msdn.microsoft.com/en-

us/library/aa174792(SQL.80).aspx, 8 2010.

OSGeo. Osgeo fdo. http://fdo.osgeo.org/, 8 2010.

Recro. Autocad map 3d. http://www.recro.hr/Hrvatski/Principali/

Autodesk/Pages/AutoCADMap3D.aspx, 8 2010.

Wikipedia. Api. http://en.wikipedia.org/wiki/Application programming interface,

8 2010a.

69

Page 74: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Wikipedia. Client - server model. http://en.wikipedia.org/wiki/Client-

server model, 8 2010b.

Wikipedia. Cloud computing. http://simple.wikipedia.org/wiki/Cloud computing,

8 2010c.

Wikipedia. .net. http://en.wikipedia.org/wiki/.NET Framework, 8 2010d.

Wikipedia. Ekstranet. http://hr.wikipedia.org/wiki/Ekstranet, 8 2010e.

Wikipedia. List of gis software. http://en.wikipedia.org/wiki/List of geographic

information systems software, 8 2010f.

Wikipedia. Gis applications. http://en.wikipedia.org/wiki/GIS software, 8

2010g.

Wikipedia. Lisp. http://en.wikipedia.org/wiki/Lisp (programming

language), 8 2010h.

Wikipedia. Nosql. http://en.wikipedia.org/wiki/NoSQL, 8 2010i.

Wikipedia. Spatial database. http://en.wikipedia.org/wiki/Spatial database,

8 2010j.

Wikipedia. Stored procedure. http://en.wikipedia.org/wiki/Stored procedure,

8 2010k.

Wikipedia. Virtual private network. http://en.wikipedia.org/wiki/Virtual

private network, 8 2010l.

Wikipedia. Visual studio. http://en.wikipedia.org/wiki/Visual Studio, 8

2010m.

70

Page 75: Implementacija GIS funkcionalnosti u CAD okruzenju koristeci

Wikipedia. Web mapping. http://en.wikipedia.org/wiki/Web mapping, 8

2010n.

Wikipedia. Xml. http://en.wikipedia.org/wiki/XML, 8 2010o.

71