TTransform: Razlika med redakcijama
m |
m |
||
| Vrstica 1: | Vrstica 1: | ||
| − | |||
{{Work}} | {{Work}} | ||
Razred '''TTransform''' je namenjen transformaciji koordinat. | Razred '''TTransform''' je namenjen transformaciji koordinat. | ||
| − | + | ==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> | ||
| − | + | ===Edit=== | |
| − | + | Metoda '''Edit''' odpre masko za ročno določanje nastavitev transformacije. | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | Metoda '''Edit''' odpre masko za | ||
<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 | + | Č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> | ||
| − | == | + | ===Area=== |
| − | Lastnost ''' | + | Lastnost '''Area'''določa območje transformacije. |
<declaration> | <declaration> | ||
| − | Property|TTransform. | + | Property|TTransform.Area |
| − | Result| | + | 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 ... | |
| − | |||
| − | == | ||
| − | |||
<declaration> | <declaration> | ||
| − | Property|TTransform. | + | Property|TTransform.TransformInputCS |
| − | Result| | + | Result|String|Šifra in parametri koordinatnega sistema vhodne plasti. |
</declaration> | </declaration> | ||
<source></source> | <source></source> | ||
| − | == | + | ===TransformOutputCS=== |
| − | + | Property'''TransformOutputCS''' . | |
<declaration> | <declaration> | ||
| − | + | Property|TTransform.TransformOutputCS | |
| − | Result| | + | Result|String|. |
</declaration> | </declaration> | ||
<source></source> | <source></source> | ||
| − | ==Execute== | + | ==Linearna transformacija== |
| − | + | <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> | ||
| − | + | Property|TTransform.TransformBasePointY | |
| − | Result| | + | Result|Float|. |
</declaration> | </declaration> | ||
| − | |||
| − | == | + | ===TransformBasePointX=== |
| − | + | Lastnost '''TransformBasePointX''' določa vertikalno koordinato. | |
<declaration> | <declaration> | ||
| − | Property|TTransform. | + | Property|TTransform.TransformBasePointX |
| − | Result| | + | Result|Float|. |
</declaration> | </declaration> | ||
| − | |||
| − | == | + | ===TransformBasePointFacY=== |
| − | Property''' | + | Property'''TransformBasePointFacY''' določa horizontalni raztezek glede na [[TTransform#TransformBasePointY|TransformBasePointY]]. |
<declaration> | <declaration> | ||
| − | Property|TTransform. | + | Property|TTransform.TransformBasePointFacY |
| − | Result| | + | Result|Float|. |
</declaration> | </declaration> | ||
| − | |||
| − | == | + | ===TransformBasePointFacX=== |
| − | Property''' | + | Property'''TransformBasePointFacX''' določa vertikalni raztezek glede na [[TTransform#TransformBasePointX|TransformBasePointX]]. |
<declaration> | <declaration> | ||
| − | Property|TTransform. | + | Property|TTransform.TransformBasePointFacX |
| − | Result| | + | Result|Float|. |
</declaration> | </declaration> | ||
| − | |||
| − | ==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> | ||
| − | |||
| − | ==TransformBasePointDeltaX== | + | ===TransformBasePointDeltaX=== |
| − | Property'''TransformBasePointDeltaX''' . | + | Property'''TransformBasePointDeltaX''' določa vertikalni zamik. |
<declaration> | <declaration> | ||
Property|TTransform.TransformBasePointDeltaX | Property|TTransform.TransformBasePointDeltaX | ||
Result|Float|. | Result|Float|. | ||
</declaration> | </declaration> | ||
| − | |||
| − | ==TransformBasePointDeltaY== | + | ===TransformBasePointDeltaY=== |
| − | Property'''TransformBasePointDeltaY''' . | + | Property'''TransformBasePointDeltaY''' določa horizontalni zamik. |
<declaration> | <declaration> | ||
Property|TTransform.TransformBasePointDeltaY | Property|TTransform.TransformBasePointDeltaY | ||
Result|Float|. | Result|Float|. | ||
</declaration> | </declaration> | ||
| − | |||
| − | == | + | ==Transformacija po kvadratu oddaljenosti== |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | == | + | ===TransformLayer=== |
| − | Property''' | + | Property'''TransformLayer''' . |
<declaration> | <declaration> | ||
| − | Property|TTransform. | + | Property|TTransform.TransformLayer |
| − | Result| | + | Result|TLayer|. |
</declaration> | </declaration> | ||
<source></source> | <source></source> | ||
| − | == | + | ===TransformRecordList=== |
| − | Property''' | + | Property'''TransformRecordList''' . |
<declaration> | <declaration> | ||
| − | Property|TTransform. | + | Property|TTransform.TransformRecordList |
| − | Result| | + | Result|TRecordList|. |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
</declaration> | </declaration> | ||
<source></source> | <source></source> | ||
| − | ==TransformCoorType== | + | ===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> | ||
| − | |||
| − | ==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> | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
[[Category:Razredi]] | [[Category:Razredi]] | ||
[[Category:SDMS Basic]] | [[Category:SDMS Basic]] | ||
Redakcija: 10:04, 26. marec 2010
Razred TTransform je namenjen transformaciji koordinat.
Vsebina
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
EndIfEdit
Metoda Edit odpre masko za ročno določanje nastavitev transformacije.
| Method TTransform.Edit As Boolean | ||
| Result | Optional Boolean | Vrne 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 | ||
| Result | Optional Boolean | Metoda 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.ExecuteInputLayer
Lastnost InputLayer določa vhodno podatkovno plast transformacije.
| Property TTransform.InputLayer As TLayer | ||
| Result | TLayer | Vhodna 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 | ||
| Result | TRecordList | Vhodna 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 | ||
| Result | TLayer | Izhodna 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 | ||
| Result | Long | Tip transformacije:
|
Area
Lastnost Areadoloča območje transformacije.
| Property TTransform.Area As TPointArray | ||
| Result | TPointArray | Poligon, 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.ExecuteTransformInputCS
Lastnost TransformInputCS vsebuje ...
| Property TTransform.TransformInputCS As String | ||
| Result | String | Šifra in parametri koordinatnega sistema vhodne plasti. |
TransformOutputCS
PropertyTransformOutputCS .
| Property TTransform.TransformOutputCS As String | ||
| Result | String | . |
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.ExecuteTransformBasePointY
PropertyTransformBasePointY določa horizontalno koordinato.
| Property TTransform.TransformBasePointY As Float | ||
| Result | Float | . |
TransformBasePointX
Lastnost TransformBasePointX določa vertikalno koordinato.
| Property TTransform.TransformBasePointX As Float | ||
| Result | Float | . |
TransformBasePointFacY
PropertyTransformBasePointFacY določa horizontalni raztezek glede na TransformBasePointY.
| Property TTransform.TransformBasePointFacY As Float | ||
| Result | Float | . |
TransformBasePointFacX
PropertyTransformBasePointFacX določa vertikalni raztezek glede na TransformBasePointX.
| Property TTransform.TransformBasePointFacX As Float | ||
| Result | Float | . |
TransformBasePointAngle
PropertyTransformBasePointAngle določa rotacijo okoli točke (TransformBasePointY, TransformBasePointX).
| Property TTransform.TransformBasePointAngle As Float | ||
| Result | Float | . |
TransformBasePointDeltaX
PropertyTransformBasePointDeltaX določa vertikalni zamik.
| Property TTransform.TransformBasePointDeltaX As Float | ||
| Result | Float | . |
TransformBasePointDeltaY
PropertyTransformBasePointDeltaY določa horizontalni zamik.
| Property TTransform.TransformBasePointDeltaY As Float | ||
| Result | Float | . |
Transformacija po kvadratu oddaljenosti
TransformLayer
PropertyTransformLayer .
| Property TTransform.TransformLayer As TLayer | ||
| Result | TLayer | . |
TransformRecordList
PropertyTransformRecordList .
| Property TTransform.TransformRecordList As TRecordList | ||
| Result | TRecordList | . |
TransformCoorType
Lastnost TransformCoorType določa kako so podani transformacijski vektorji.
| Property TTransform.TransformCoorType As Long | ||
| Result | Long | Tipi transformacijskih vektorjev:
|
TransformFieldX
PropertyTransformFieldX .
| Property TTransform.TransformFieldX As TField | ||
| Result | TField | . |
TransformFieldY
PropertyTransformFieldY .
| Property TTransform.TransformFieldY As TField | ||
| Result | TField | . |