Struktura XML datotek

Iz SDMS
Skoči na: navigacija, iskanje

Vsebina

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