Struktura XML datotek
Iz SDMS
Jump to navigationJump to searchVsebina
CRS*.XML (transformacije koordinatnih sistemov)
Transformacije koordinatnih sistemov so vgrajene v sam program. Parametri za Helmertovo 7-parametrsko transformacijo pa se lahko podajo v XML datoteki.
Primer
<?xml version="1.0" encoding="windows-1250"?>
<crs>
<projection>
<prcode>SI-D48</prcode>
<transformation>
<trcode>GURS-08</trcode>
<trnote>Cela Slovenija (15-125cm)</trnote>
<trtowgs>409.545, 72.164, 486.872, 3.085957, 5.469110, -11.020289, 17.919665</trtowgs>
<trtocrs>-473.862, -124.587, -413.576, -4.730807, -2.380796, 11.786482, -10.645117</trtocrs>
<trtest>SITRANET, 16, 0, 0, 46, 0, 0, 577825.261, 95579.074</trtest>
</transformation>
</projection>
</crs>
TMS*.XML (definicije tile map servisov)
Primer
<?xml version="1.0" encoding="windows-1250"?>
<tms>
<service>
<code>OSM</code>
<name>OSM - OpenStreetMap</name>
<server>a.tile.openstreetmap.org</server>
<server>b.tile.openstreetmap.org</server>
<server>c.tile.openstreetmap.org</server>
<levels>
<codes>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19</codes>
<link>/%Z/%X/%Y.png</link>
</levels>
<format>png</format>
<validity>7</validity>
</service>
</tms>
Parametri taga SERVICE
- CODE (1) - koda, ki naj bo unikatna in naj se nikoli ne spremeni
- NAME (1) - opisno ime, tudi unikatno, da se pri izbiri lahko ločijo med sabo
- CRS (0..1) - koda koordinatnega sistema, za kode poglej v CRS.XML (privzeto WGS-84)
- ORIGIN (0..1) - izhodišče sistema, TOP za levo-zgoraj ali BOTTOM za levo-spodaj (privzeto TOP)
- ORIGINX (0..1) - koordinata izhodišča sistema (levo) (privzeto 0)
- ORIGINY (0..1) - koordinata izhodišča sistema (zgoraj/spodaj) (privzeto 0)
- PIXELSIZE (0..1) - dimenzije piksla v metrih na prvem nivoju (privzeto 104857.6)
- TILESIZE (0..1) - dimenzija slike v pikslih (privzeto 256)
- FORMAT (1) - format slike, JPG, PNG ali TIF
- VALIDITY (0..1) - število dni do ponovnega preverjanja veljavnosti (privzeto 7)
- CHROMACOLORHEX (0..1) - barva, ki se naj spremeni v prozorno, npr. FFFFFE (privzeto 0)
- CHROMATOLERANCE (0..1) - toleranca, za prozornost, npr. 1 (privzeto 0)
- TOPLEVELINDEX (0..1) - index nivoja, na katerem se začnejo karte (če želimo ignorirati zgornje nivoje) (privzeto 0)
- SERVER (1..N) - naslovi strežnikov
- LEVELS (1..N) - definicije nivojev
Parametri taga LEVELS
- CODES (1) - seznam šifer nivojev, ločenih z vejico
- LINK (1) - povezava na sliko, kjer se % sekvence nadomeščajo z dejanskimi vrednosti
% sekvence
- %Z se nadomesti s šifro nivoja
- %X se nadomesti s horizontalnim indeksom slike
- %Y se nadomesti z vertikalnim indeksom slike
- %Q se nadomesti s quad-tree nazivom slike
CTR*.XML (definicije barvnih transformacij)
Primer
<?xml version="1.0" encoding="windows-1250"?>
<cts>
<ct>
<ctcode>1</ctcode>
<ctname>Cyan, Orange - 8 Bands</ctname>
<ctlinear>true</ctlinear>
<ctshadow>NW</ctshadow>
<ctpair> 0, 806000</ctpair>
<ctpair> 100, 808000</ctpair>
<ctpair> 200, A0A000</ctpair>
<ctpair> 300, C0C000</ctpair>
<ctpair> 400, F0F000</ctpair>
<ctpair> 600, CAE8DD</ctpair>
<ctpair> 800, 55AAFF</ctpair>
<ctpair>1000, 4484DD</ctpair>
<ctpair>1300, 337CCE</ctpair>
<ctpair>1700, 2967AB</ctpair>
<ctpair>2100, 1A416C</ctpair>
<ctpair>2900, 4A484D</ctpair>
</ct>
</cts>
Parametri taga CT
- CTCODE (1) - koda barvne transformacije
- CTNAME (1) - opisno ime barvne transformacije
- CTLINEAR (0..1) - ali se vrednosti med dvema barvama linearno prelivajo (privzeto false)
- CTSHADOW (0..1) - smer osvetlitve za senčenje NW, N, NE, W, E, SW, S, SE (privzeto se ne senči)
- CTPAIR (1..N) - seznam parov vrednost,barva (primer 200,FF00FF)
XML struktura piramide
Uporaba
PyramidBuildAll(Code As String) ponovno naloži XML datoteko, izdela vse nivoje in sestavi piramido.
Primer
<?xml version="1.0" encoding="windows-1250"?>
<store>
<name>Ortofoto (GURS-50cm)</name>
<tilesize>512</tilesize>
<crs>SI-D48</crs>
<format>jpg,75</format>
<minscale>100</minscale>
<sourcepath>D:\Podatki\Rasters\DOF-GURS\TM050</sourcepath>
<targetpath>D:\Podatki\Rasters\DOF-GURS\TM050</targetpath>
<level>
<code>050x001</code>
<pixelsize>0.50</pixelsize>
<maxscale>5000</maxscale>
<build>files,,,000000,FFFFFF,1</build>
</level>
<level>
<code>050x002</code>
<pixelsizemul>2</pixelsizemul>
<maxscalemul>2</maxscalemul>
<build>level</build>
</level>
</store>
Parametri taga STORE
- NAME (1) - opisno ime, mora biti unikatno, da se pri izbiri lahko ločijo med sabo
- CRS (1) - koda koordinatnega sistema, za kode poglej v CRS.XML (privzeto WGS-84), trenutno se še ne uporablja
- TILESIZE (1) - velikost tilov v pikslih
- FORMAT (1) - format tilov, TG4, LZW ali JPG (ki ima lahko dodatno še kvaliteto 0-100)
- MINSCALE (0..1) - minimalno merilo, do katere se piramida izrisuje
- COLOR (0..1) - barva za črnobele slike pri TG4, na primer FF00FF
- CHROMA (0..1) - barva in toleraca za prozornost, na primer FFFFFF,10
- SOURCEPATH (0..1) - predpona, ki se doda mapam vhodnih datotek za build
- TARGETPATH (0..1) - mapa, kamor se shranijo vmesni rezultati builda (nivoji)
- BUILDWINDOW (0..1) - okno, ki oklepa piramido, za optimizacijo builda (privzeto 250000,0,750000,250000)
- LEVEL (1..N) - definicije izdelave nivojev
Parametri taga LEVEL
- CODE (1) - unikatna koda nivoja
- PIXELSIZE (0..1) - velikost piksla v metrih, obvezno podana na prvem nivoju; če ni podana, je dvojna vrednost prejšnjega nivoja
- PIXELSIZEMUL (0..1) - če je podan PIXELSIZE, se množi s to vrednostjo (privzeto 1)
- PIXELSIZEDIV (0..1) - če je podan PIXELSIZE, se deli s to vrednostjo (privzeto 1)
- MAXSCALE (0..1) - največje merilo izrisa tega nivoja, obvezno podana na prvem nivoju; če ni podana, je dvojna vrednost prejšnjega nivoja
- MAXSCALEMUL (0..1) - če je podan MAXSCALE, se množi s to vrednostjo (privzeto 1)
- PREPAINT (0..1) -
- BUILD (0..N) - navodila za kreiranje nivoja, obvezna na prvem nivoju (privzeto LEVEL)
Parametri taga BUILD
Parametri so ločeni z vejico.
- FILES,mapa,filter,barva,chroma,toleranca
- mapa (0..1) -
- filter (0..1) -
- barva (0..1) -
- chroma (0..1) -
- toleranca (0..1) -
- LIST,seznam,barva,chroma,toleranca
- seznam (1) - ascii datoteka s seznamom kart
- barva (0..1) -
- chroma (0..1) -
- toleranca (0..1) -
- LEVEL,koda
- koda (0..1) - koda nivoja, iz katerega se reducira trenutni nivo (privzeto prejšnji nivo)
- GRID,grid,polje,transformacija
- grid (1) - ime xml datoteke z definicijo grida
- polje (1) - indeks polja iz grida, ki naj se uporabi
- transformacija (1) - koda barvne transformacije
- DRAW,tematika,ymin,xmin,ymax,xmax
- tematika (1) - ime tematike, ki naj se izriše
- ymin, xmin, ymax, xmax (1) - okno izrisa
XML struktura grida
Primer
<?xml version="1.0" encoding="windows-1250"?> <grid> <Crs>SI-D48</Crs> <OriginY>371200</OriginY> <OriginX>25600</OriginX> <TileCountY>20</TileCountY> <TileCountX>14</TileCountX> <CellCountY>512</CellCountY> <CellCountX>512</CellCountX> <CellDimenY>25</CellDimenY> <CellDimenX>25</CellDimenX> <CellField>I02,100,-600</CellField> <CellField>I02,100,+300</CellField> </Grid>
Parametri taga GRID
- ...
- ...
Parametri taga CELLFIELD
- TIP (1): tip polja, ena od vrednosti: W01,W02,W04,I01,I02,I04,F04,F08
- FAKTOR (0..1): celoštevilčni množitelj vrednosti, za optimizacijo
- DELTA (0..1): celoštevilčni dodatek vrednosti, za optimizacijo
Interna vrednost polja se računa po formuli:
- interna vrednost = (realna vrednost + delta) * faktor
Primer grida za transformacijo koordinat
Primer XML datoteke (SI-D96;SI-D48):
<?xml version="1.0" encoding="WINDOWS-1250"?> <Grid> <Crs>SI-D96</Crs> <OriginY>370000</OriginY> <OriginX>25000</OriginX> <CellDimenY>500</CellDimenY> <CellDimenX>500</CellDimenX> <TileCountY>1</TileCountY> <TileCountX>1</TileCountX> <CellCountY>520</CellCountY> <CellCountX>340</CellCountX> <CellField>I02,1000,-370</CellField> <CellField>I02,1000,+485</CellField> </Grid>
Procedura za izračun grida:
Dim G As TGrid, IY, IX As Long, Y1, X1, X2, Y2 As Float
G = CreateGrid(ProgramPath + 'QTS;SI-D96;SI-D48.XML')
If Assigned(G) Then
CRSToCRSParams('SI-D48', 'SI-D96')
For IY = 0 To G.TileCountY * G.CellCountY - 1
Y1 = G.OriginY + IY * G.CellDimenY + G.CellDimenY / 2
For IX = 0 To G.TileCountX * G.CellCountX - 1
X1 = G.OriginX + IX * G.CellDimenX + G.CellDimenX / 2
CRSToCRS(Y1, X1, Y2, X2)
G.CellValue(Y1, X1, 0) = Y2 - Y1
G.CellValue(Y1, X1, 1) = X2 - X1
Next
Next
G.Save
G.Destroy
EndIf