TTransform: Razlika med redakcijama

Iz SDMS
Jump to navigationJump to search
m
m
Vrstica 1: Vrstica 1:
__NOTOC__
 
 
{{Work}}
 
{{Work}}
 
Razred '''TTransform''' je namenjen transformaciji koordinat.
 
Razred '''TTransform''' je namenjen transformaciji koordinat.
  
Tipično se uporablja na dva načina.
+
==Tipična uporaba==
 
 
 
Uporabnik lahko sam ročno nastavi parametre v prikazanem oknu in nato izvede transformacijo:
 
Uporabnik lahko sam ročno nastavi parametre v prikazanem oknu in nato izvede transformacijo:
 
<source class="example">
 
<source class="example">
Vrstica 13: Vrstica 11:
 
</source>
 
</source>
  
ali pa izvede transformacijo z vnaprej določenimi parametri:
+
===Edit===
<source class="example">
+
Metoda '''Edit''' odpre masko za ročno določanje nastavitev transformacije.
// izvedemo transformacijo iz D48 v D96
 
Transform.InputLayer = [vhodna plast]
 
Transform.OutputLayer = [izhodna plast]
 
Transform.TransformType = 3
 
Transform.TransformInputCS = "SI-D48,,GURS-08"
 
Transform.TransformOutputCS = "SI-D96"
 
Transform.Execute
 
</source>
 
 
 
==Edit==
 
Metoda '''Edit''' odpre masko za roćno določanje nastavitev transformacije.
 
 
<declaration>
 
<declaration>
 
Method|TTransform.Edit
 
Method|TTransform.Edit
Vrstica 31: Vrstica 18:
 
</declaration>
 
</declaration>
  
==Execute==
+
===Execute===
 
Metoda '''Execute''' izvede transformacijo podatkov iz vhodne v izhodno podatkovno plast.
 
Metoda '''Execute''' izvede transformacijo podatkov iz vhodne v izhodno podatkovno plast.
 
<declaration>
 
<declaration>
Vrstica 38: Vrstica 25:
 
</declaration>
 
</declaration>
  
==InputLayer==
+
==Direktna uporaba s parametri==
 +
Transformacija se lahko izvede tudi avtomatsko z vnaprej določenimi parametri:
 +
<source class="example">
 +
Dim PA As TPointArray
 +
Transform.InputLayer = [vhodna plast]
 +
Transform.OutputLayer = [izhodna plast]
 +
Transform.TransformType = ...
 +
// nastavimo še ostale parametre transformacije
 +
Transform.Execute
 +
</source>
 +
 
 +
===InputLayer===
 
Lastnost '''InputLayer''' določa vhodno podatkovno plast transformacije.
 
Lastnost '''InputLayer''' določa vhodno podatkovno plast transformacije.
 
<declaration>
 
<declaration>
Vrstica 46: Vrstica 44:
 
Te lastnosti ni potrebno nastavljati, kadar se nastavi [[TTransform#InputRecordList|InputRecordList]], ker se upošteva kar podatkovna plast iz liste zapisov.
 
Te lastnosti ni potrebno nastavljati, kadar se nastavi [[TTransform#InputRecordList|InputRecordList]], ker se upošteva kar podatkovna plast iz liste zapisov.
  
==InputRecordList==
+
===InputRecordList===
 
Lastnost '''InputRecordList''' določa vhodno listo zapisov transformacije.
 
Lastnost '''InputRecordList''' določa vhodno listo zapisov transformacije.
 
<declaration>
 
<declaration>
Vrstica 52: Vrstica 50:
 
Result|TRecordList|Vhodna lista zapisov.
 
Result|TRecordList|Vhodna lista zapisov.
 
</declaration>
 
</declaration>
Če se ne nastavi oz. je nastavljena na ''nil'', se privzame lista vseh zapisov. Če se nastavi, ni potrebno dodatno nastavljati [[TTransform#InputLayer|InputLayer]], saj se plast prevzame iz liste zapisov.
+
Če se ne nastavi oz. je nastavljena na ''nil'', se privzame lista vseh zapisov. Če se nastavi, ni potrebno dodatno nastavljati {{PL|InputLayer}}, saj se plast prevzame iz liste zapisov.
  
==OutputLayer==
+
===OutputLayer===
 
Lastnost '''OutputLayer''' določa izhodno plast transformacije.
 
Lastnost '''OutputLayer''' določa izhodno plast transformacije.
 
<declaration>
 
<declaration>
Vrstica 62: Vrstica 60:
 
Če se ne nastavi, se avtomatsko naredi nova plast in je po [[TTransform#Execute|Execute]] ukazu shranjena referenca na novo plast. Če pa je nastavljena, se podatki in struktura obstoječe plasti briše in ponovno nastavi iz vhodne plasti za transformacijo.
 
Če se ne nastavi, se avtomatsko naredi nova plast in je po [[TTransform#Execute|Execute]] ukazu shranjena referenca na novo plast. Če pa je nastavljena, se podatki in struktura obstoječe plasti briše in ponovno nastavi iz vhodne plasti za transformacijo.
  
==TransformType==
+
===TransformType===
 
Lastnost '''TransformType''' določa tip transformacije.
 
Lastnost '''TransformType''' določa tip transformacije.
 
<declaration>
 
<declaration>
Vrstica 69: Vrstica 67:
 
</declaration>
 
</declaration>
  
==TransformCoorType==
+
===Area===
Lastnost '''TransformCoorType''' določa {{ToDo}}
+
Lastnost '''Area'''določa območje transformacije.
 
<declaration>
 
<declaration>
Property|TTransform.TransformCoorType
+
Property|TTransform.Area
Result|Long|Tip izhodnih entitet:<ul><li>0 - Centroid + Nova lokacija</li><li>1 - Centroid + Stara lokacija</li><li>2 - Linija (stare proti novi lokaciji)</li></ul>
+
Result|TPointArray|Poligon, znotraj katerega se izvaja transformacija. Če je ''nil'', se transformira cela plast. Naredi se kopija podanega poligona.
 
</declaration>
 
</declaration>
 +
Transformirale se bodo le koordinate, ki so v vhodnih podatkih znotraj poligona. Če se transformira poligon oziroma polilinija in je le ta delno znotraj poligona, se transformirajo samo te točke, ostale pa ostanejo nespremenjene.
 +
<source class="example">
 +
// ...
 +
Dim PA As TPointArray
 +
PA = CurRec.PointArray
 +
Transform.Area = PA
 +
Destroy (PA)
 +
// ...
 +
</source>
  
 
+
==Transformacija med koordinatnimi sistemi==
 
+
<source class="example">
 
+
// izvedemo transformacijo iz D48 v D96
 
+
Transform.InputLayer = [vhodna plast]
 
+
Transform.OutputLayer = Nil
 
+
Transform.TransformType = 3
 
+
Transform.TransformInputCS = "SI-D48,,GURS-08"
 
+
Transform.TransformOutputCS = "SI-D96"
 
+
Transform.Execute
 
+
</source>
 
+
===TransformInputCS===
 
+
Lastnost '''TransformInputCS''' vsebuje ...
 
 
==Area==
 
Property'''Area''' .
 
 
<declaration>
 
<declaration>
Property|TTransform.Area
+
Property|TTransform.TransformInputCS
Result|TPointArray|.
+
Result|String|Šifra in parametri koordinatnega sistema vhodne plasti.
 
</declaration>
 
</declaration>
 
<source></source>
 
<source></source>
  
==Edit==
+
===TransformOutputCS===
Method'''Edit''' .
+
Property'''TransformOutputCS''' .
 
<declaration>
 
<declaration>
Method|TTransform.Edit
+
Property|TTransform.TransformOutputCS
Result|Optional Boolean|.
+
Result|String|.
 
</declaration>
 
</declaration>
 
<source></source>
 
<source></source>
  
==Execute==
+
==Linearna transformacija==
Method'''Execute''' .
+
<source class="example">
 +
/* izvedemo transformacijo
 +
      Zrcaljenje po horizontali okoli 500000
 +
      raztezek po vertikali od 100000
 +
      Rotacija za 90 stopinj
 +
      in zamik za 5 in 10 metrov
 +
*/
 +
Transform.InputLayer = [vhodna plast]
 +
Transform.OutputLayer = Nil
 +
Transform.TransformType = 0
 +
Transform.TransformBasePointY = 500000
 +
Transform.TransformBasePointX = 100000
 +
Transform.TransformBasePointFacY = -1
 +
Transform.TransformBasePointFacX = 2
 +
Transform.TransformBasePointAngle = DegToRad (90)
 +
Transform.TransformBasePointDeltaY = 5
 +
Transform.TransformBasePointDeltaX = 10
 +
Transform.Execute
 +
</source>
 +
===TransformBasePointY===
 +
Property'''TransformBasePointY''' določa horizontalno koordinato.
 
<declaration>
 
<declaration>
Method|TTransform.Execute
+
Property|TTransform.TransformBasePointY
Result|Optional Boolean|.
+
Result|Float|.
 
</declaration>
 
</declaration>
<source></source>
 
  
==InputLayer==
+
===TransformBasePointX===
Property'''InputLayer''' .
+
Lastnost '''TransformBasePointX''' določa vertikalno koordinato.
 
<declaration>
 
<declaration>
Property|TTransform.InputLayer
+
Property|TTransform.TransformBasePointX
Result|TLayer|.
+
Result|Float|.
 
</declaration>
 
</declaration>
<source></source>
 
  
==InputRecordList==
+
===TransformBasePointFacY===
Property'''InputRecordList''' .
+
Property'''TransformBasePointFacY''' določa horizontalni raztezek glede na [[TTransform#TransformBasePointY|TransformBasePointY]].
 
<declaration>
 
<declaration>
Property|TTransform.InputRecordList
+
Property|TTransform.TransformBasePointFacY
Result|TRecordList|.
+
Result|Float|.
 
</declaration>
 
</declaration>
<source></source>
 
  
==OutputLayer==
+
===TransformBasePointFacX===
Property'''OutputLayer''' .
+
Property'''TransformBasePointFacX''' določa vertikalni raztezek glede na [[TTransform#TransformBasePointX|TransformBasePointX]].
 
<declaration>
 
<declaration>
Property|TTransform.OutputLayer
+
Property|TTransform.TransformBasePointFacX
Result|TLayer|.
+
Result|Float|.
 
</declaration>
 
</declaration>
<source></source>
 
  
==TransformBasePointAngle==
+
===TransformBasePointAngle===
Property'''TransformBasePointAngle''' .
+
Property'''TransformBasePointAngle''' določa rotacijo okoli točke ([[TTransform#TransformBasePointY|TransformBasePointY]], [[TTransform#TransformBasePointX|TransformBasePointX]]).
 
<declaration>
 
<declaration>
 
Property|TTransform.TransformBasePointAngle
 
Property|TTransform.TransformBasePointAngle
 
Result|Float|.
 
Result|Float|.
 
</declaration>
 
</declaration>
<source></source>
 
  
==TransformBasePointDeltaX==
+
===TransformBasePointDeltaX===
Property'''TransformBasePointDeltaX''' .
+
Property'''TransformBasePointDeltaX''' določa vertikalni zamik.
 
<declaration>
 
<declaration>
 
Property|TTransform.TransformBasePointDeltaX
 
Property|TTransform.TransformBasePointDeltaX
 
Result|Float|.
 
Result|Float|.
 
</declaration>
 
</declaration>
<source></source>
 
  
==TransformBasePointDeltaY==
+
===TransformBasePointDeltaY===
Property'''TransformBasePointDeltaY''' .
+
Property'''TransformBasePointDeltaY''' določa horizontalni zamik.
 
<declaration>
 
<declaration>
 
Property|TTransform.TransformBasePointDeltaY
 
Property|TTransform.TransformBasePointDeltaY
 
Result|Float|.
 
Result|Float|.
 
</declaration>
 
</declaration>
<source></source>
 
  
==TransformBasePointFacX==
+
==Transformacija po kvadratu oddaljenosti==
Property'''TransformBasePointFacX''' .
 
<declaration>
 
Property|TTransform.TransformBasePointFacX
 
Result|Float|.
 
</declaration>
 
<source></source>
 
  
==TransformBasePointFacY==
+
===TransformLayer===
Property'''TransformBasePointFacY''' .
+
Property'''TransformLayer''' .
 
<declaration>
 
<declaration>
Property|TTransform.TransformBasePointFacY
+
Property|TTransform.TransformLayer
Result|Float|.
+
Result|TLayer|.
 
</declaration>
 
</declaration>
 
<source></source>
 
<source></source>
  
==TransformBasePointX==
+
===TransformRecordList===
Property'''TransformBasePointX''' .
+
Property'''TransformRecordList''' .
 
<declaration>
 
<declaration>
Property|TTransform.TransformBasePointX
+
Property|TTransform.TransformRecordList
Result|Float|.
+
Result|TRecordList|.
</declaration>
 
<source></source>
 
 
 
==TransformBasePointY==
 
Property'''TransformBasePointY''' .
 
<declaration>
 
Property|TTransform.TransformBasePointY
 
Result|Float|.
 
 
</declaration>
 
</declaration>
 
<source></source>
 
<source></source>
  
==TransformCoorType==
+
===TransformCoorType===
Property'''TransformCoorType''' .
+
Lastnost '''TransformCoorType''' določa kako so podani transformacijski vektorji.
 
<declaration>
 
<declaration>
 
Property|TTransform.TransformCoorType
 
Property|TTransform.TransformCoorType
Result|Long|.
+
Result|Long|Tipi transformacijskih vektorjev:<ul><li>0 - Centroid + Nova lokacija</li><li>1 - Centroid + Stara lokacija</li><li>2 - Linija (Od stare proti novi lokaciji)</li></ul>
 
</declaration>
 
</declaration>
<source></source>
 
  
==TransformFieldX==
+
===TransformFieldX===
 
Property'''TransformFieldX''' .
 
Property'''TransformFieldX''' .
 
<declaration>
 
<declaration>
Vrstica 209: Vrstica 211:
 
<source></source>
 
<source></source>
  
==TransformFieldY==
+
===TransformFieldY===
 
Property'''TransformFieldY''' .
 
Property'''TransformFieldY''' .
 
<declaration>
 
<declaration>
Vrstica 216: Vrstica 218:
 
</declaration>
 
</declaration>
 
<source></source>
 
<source></source>
 
==TransformInputCS==
 
Property'''TransformInputCS''' .
 
<declaration>
 
Property|TTransform.TransformInputCS
 
Result|String|.
 
</declaration>
 
<source></source>
 
 
==TransformLayer==
 
Property'''TransformLayer''' .
 
<declaration>
 
Property|TTransform.TransformLayer
 
Result|TLayer|.
 
</declaration>
 
<source></source>
 
 
==TransformOutputCS==
 
Property'''TransformOutputCS''' .
 
<declaration>
 
Property|TTransform.TransformOutputCS
 
Result|String|.
 
</declaration>
 
<source></source>
 
 
==TransformRecordList==
 
Property'''TransformRecordList''' .
 
<declaration>
 
Property|TTransform.TransformRecordList
 
Result|TRecordList|.
 
</declaration>
 
<source></source>
 
 
==TransformType==
 
Property'''TransformType''' .
 
<declaration>
 
Property|TTransform.TransformType
 
Result|Long|.
 
</declaration>
 
<source></source>
 
 
 
 
  
 
[[Category:Razredi]]
 
[[Category:Razredi]]
 
[[Category:SDMS Basic]]
 
[[Category:SDMS Basic]]

Redakcija: 10:04, 26. marec 2010

Ta stran je trenutno še v izdelavi.

Razred TTransform je namenjen transformaciji koordinat.

Tipična uporaba

Uporabnik lahko sam ročno nastavi parametre v prikazanem oknu in nato izvede transformacijo:

 // odpre masko z nastavitvami in nato izvede transformacijo
 If Transform.Edit Then
   Transform.Execute
 EndIf

Edit

Metoda Edit odpre masko za ročno določanje nastavitev transformacije.

Method TTransform.Edit As Boolean
ResultOptional BooleanVrne true/false glede na to, ali je uporabnik zapustil masko s Potrdi oz. Opusti.

Execute

Metoda Execute izvede transformacijo podatkov iz vhodne v izhodno podatkovno plast.

Method TTransform.Execute As Boolean
ResultOptional BooleanMetoda vrne true/false glede na to, ali se je transformacija uspešno izvedla.

Direktna uporaba s parametri

Transformacija se lahko izvede tudi avtomatsko z vnaprej določenimi parametri:

 Dim PA As TPointArray
 Transform.InputLayer = [vhodna plast]
 Transform.OutputLayer = [izhodna plast]
 Transform.TransformType = ...
 // nastavimo še ostale parametre transformacije
 Transform.Execute

InputLayer

Lastnost InputLayer določa vhodno podatkovno plast transformacije.

Property TTransform.InputLayer As TLayer
ResultTLayerVhodna podatkovna plast.

Te lastnosti ni potrebno nastavljati, kadar se nastavi InputRecordList, ker se upošteva kar podatkovna plast iz liste zapisov.

InputRecordList

Lastnost InputRecordList določa vhodno listo zapisov transformacije.

Property TTransform.InputRecordList As TRecordList
ResultTRecordListVhodna lista zapisov.

Če se ne nastavi oz. je nastavljena na nil, se privzame lista vseh zapisov. Če se nastavi, ni potrebno dodatno nastavljati InputLayer, saj se plast prevzame iz liste zapisov.

OutputLayer

Lastnost OutputLayer določa izhodno plast transformacije.

Property TTransform.OutputLayer As TLayer
ResultTLayerIzhodna plast transformacije.

Če se ne nastavi, se avtomatsko naredi nova plast in je po Execute ukazu shranjena referenca na novo plast. Če pa je nastavljena, se podatki in struktura obstoječe plasti briše in ponovno nastavi iz vhodne plasti za transformacijo.

TransformType

Lastnost TransformType določa tip transformacije.

Property TTransform.TransformType As Long
ResultLongTip transformacije:
  • 0 - Linearna transformacija
  • 1 - Po kvadratu oddaljenosti
  • 2 - Kvadrat oddaljenosti (Veliko transformacijskih točk)
  • 3 - Med koordinatnimi sistemi

Area

Lastnost Areadoloča območje transformacije.

Property TTransform.Area As TPointArray
ResultTPointArrayPoligon, znotraj katerega se izvaja transformacija. Če je nil, se transformira cela plast. Naredi se kopija podanega poligona.

Transformirale se bodo le koordinate, ki so v vhodnih podatkih znotraj poligona. Če se transformira poligon oziroma polilinija in je le ta delno znotraj poligona, se transformirajo samo te točke, ostale pa ostanejo nespremenjene.

 // ...
 Dim PA As TPointArray
 PA = CurRec.PointArray
 Transform.Area = PA
 Destroy (PA)
 // ...

Transformacija med koordinatnimi sistemi

 // izvedemo transformacijo iz D48 v D96
 Transform.InputLayer = [vhodna plast]
 Transform.OutputLayer = Nil
 Transform.TransformType = 3
 Transform.TransformInputCS = "SI-D48,,GURS-08"
 Transform.TransformOutputCS = "SI-D96"
 Transform.Execute

TransformInputCS

Lastnost TransformInputCS vsebuje ...

Property TTransform.TransformInputCS As String
ResultStringŠifra in parametri koordinatnega sistema vhodne plasti.

TransformOutputCS

PropertyTransformOutputCS .

Property TTransform.TransformOutputCS As String
ResultString.

Linearna transformacija

 /* izvedemo transformacijo 
      Zrcaljenje po horizontali okoli 500000
      raztezek po vertikali od 100000
      Rotacija za 90 stopinj 
      in zamik za 5 in 10 metrov
 */
 Transform.InputLayer = [vhodna plast]
 Transform.OutputLayer = Nil
 Transform.TransformType = 0
 Transform.TransformBasePointY = 500000
 Transform.TransformBasePointX = 100000
 Transform.TransformBasePointFacY = -1
 Transform.TransformBasePointFacX = 2
 Transform.TransformBasePointAngle = DegToRad (90)
 Transform.TransformBasePointDeltaY = 5
 Transform.TransformBasePointDeltaX = 10
 Transform.Execute

TransformBasePointY

PropertyTransformBasePointY določa horizontalno koordinato.

Property TTransform.TransformBasePointY As Float
ResultFloat.

TransformBasePointX

Lastnost TransformBasePointX določa vertikalno koordinato.

Property TTransform.TransformBasePointX As Float
ResultFloat.

TransformBasePointFacY

PropertyTransformBasePointFacY določa horizontalni raztezek glede na TransformBasePointY.

Property TTransform.TransformBasePointFacY As Float
ResultFloat.

TransformBasePointFacX

PropertyTransformBasePointFacX določa vertikalni raztezek glede na TransformBasePointX.

Property TTransform.TransformBasePointFacX As Float
ResultFloat.

TransformBasePointAngle

PropertyTransformBasePointAngle določa rotacijo okoli točke (TransformBasePointY, TransformBasePointX).

Property TTransform.TransformBasePointAngle As Float
ResultFloat.

TransformBasePointDeltaX

PropertyTransformBasePointDeltaX določa vertikalni zamik.

Property TTransform.TransformBasePointDeltaX As Float
ResultFloat.

TransformBasePointDeltaY

PropertyTransformBasePointDeltaY določa horizontalni zamik.

Property TTransform.TransformBasePointDeltaY As Float
ResultFloat.

Transformacija po kvadratu oddaljenosti

TransformLayer

PropertyTransformLayer .

Property TTransform.TransformLayer As TLayer
ResultTLayer.

TransformRecordList

PropertyTransformRecordList .

Property TTransform.TransformRecordList As TRecordList
ResultTRecordList.

TransformCoorType

Lastnost TransformCoorType določa kako so podani transformacijski vektorji.

Property TTransform.TransformCoorType As Long
ResultLongTipi transformacijskih vektorjev:
  • 0 - Centroid + Nova lokacija
  • 1 - Centroid + Stara lokacija
  • 2 - Linija (Od stare proti novi lokaciji)

TransformFieldX

PropertyTransformFieldX .

Property TTransform.TransformFieldX As TField
ResultTField.

TransformFieldY

PropertyTransformFieldY .

Property TTransform.TransformFieldY As TField
ResultTField.