GNavigia/Gina

Ob­jek­te, Mel­dun­gen und Son­der­funk­tio­nen

Ob­jek­te: Sinn und Ge­brauch

Wir ha­ben bis­her nur je­nen Teil des Pro­gramms be­trach­tet, der die Ma­ni­pu­la­ti­on und die Vi­sua­li­sie­rung von Tracks um­fasst, wir kom­men jetzt zu dem der Ob­jekt­bil­dung. Ob­jek­te im Sin­ne die­ses Pro­gramms sind die­je­ni­gen GPS-Ele­men­te, die in der streng hier­ar­chi­schen Baum­struk­tur im Rei­ter Ob­jek­te an­ge­legt wer­den kön­nen. Ob­jek­te (kön­nen) be­ste­hen aus Ob­jek­ten, Text­ob­jek­ten, Ob­jek­tre­fe­ren­zen und Tracks. Streng hier­ar­chisch be­deu­tet, dass es nur ge­nau ei­nen obers­ten Kno­ten ge­ben kann.

Ob­jek­te fas­sen letzt­lich Tracks zu­sam­men, die so un­ter ei­nem an­de­ren Na­men prä­sen­tiert oder aus­ge­wer­tet wer­den kön­nen. Ist ei­nem Ob­jekt ein Track oder ei­ne Ob­jek­tre­fe­renz zu­ge­ord­net, kann ihm kein Ob­jekt mehr zu­ge­ord­net wer­den. Tracks und Ob­jek­tre­fe­ren­zen bil­den so­mit die Blät­ter des Baums.

«Wo­zu braucht man Ob­jek­te?», wer­den Sie fra­gen. Be­trach­ten wir hier­zu ei­nen An­wen­dungs­fall, der auch maß­geb­lich der Ob­jekt­ent­wick­lung zu­grun­de lag, näm­lich das Be­stim­men der Län­ge ei­ner Ski­ab­fahrt. Wenn man z. B. in Zer­matt von Hoh­täl­li ab­fährt zum Gant, trifft man nach et­wa der hal­b­en Stre­cke auf die Pis­te «Kel­le», die die Ab­fahrt Gor­ner­grat-Rif­fel­alp ein­lei­tet. Für ei­nen Ki­lo­me­ter lau­fen die Ab­fahr­ten zu­sam­men wei­ter, dann ga­beln sie sich zur Rif­fel­alp und zum Gant. Auf der nicht maß­stäb­li­chen Skiz­ze ist un­schwer zu er­ken­nen, dass hier ins­ge­samt vier Ab­fahr­ten (Hohtälli-Gant, Hohtälli-Rif­fel­alp, Gor­ner­grat-Gant und Gor­ner­grat-Rif­fel­alp) be­tei­ligt sind, für die man nur fünf Teil­ab­schnit­te, al­so Tracks, tat­säch­lich be­ar­bei­ten muss.

Würde man die In­for­ma­tion durch Ko­pie­ren der Teil­ab­schnit­te zu je­weils ei­ner Ab­fahrt zu­sam­men­stel­len, hät­te man zwar nur vier Tracks, aber da­für wür­de der Mit­tel­teil vier Mal auf­tre­ten. Wenn man nach Fer­tig­stel­lung der Ar­bei­ten ei­nen Feh­ler in die­sem Mit­tel­teil ent­deckt, muss man vier Ab­fahr­ten be­rich­ti­gen. Hat man statt des­sen vier Ob­jek­te er­zeugt, die auf die zu­ge­hö­ri­gen Teil­ab­schnit­te ver­wei­sen, än­dern sich die be­trof­fe­nen Ob­jek­te beim Be­rich­ti­gen des ei­nen Tracks au­to­ma­tisch.

Ob­jek­tre­fe­ren­zen sind, was der Na­me so schön spre­chend sagt, Re­fe­ren­zen auf Ob­jek­te. Stel­len Sie sich vor, dass un­se­re Ab­fahrt Hohtälli-Gant aus den Pis­ten «Whi­te Ha­re» und «Grün­see» be­steht, wo­bei die «Whi­te Ha­re» be­reits zu­vor als Ob­jekt aus den Tracks «Whi­te Ha­re I» und «Whi­te Ha­re II», dem Mit­tel­stück, zu­sam­men­ge­stellt wur­de. Da­mit kön­nen wir ein Ob­jekt «Ab­fahrt Hohtälli-Gant» bil­den mit­tels ei­ner Ob­jek­tre­fe­renz «Re­fe­renz: Whi­te Ha­re» und dem Track «Pis­te Grün­see». Hat man die Pis­te «Grün­see» zu­vor be­reits als Ob­jekt de­fi­niert, stellt man die Ab­fahrt aus zwei Ob­jek­tre­fe­ren­zen zu­sam­men.

Ob­jek­tre­fe­ren­zen kön­nen auf be­lie­bi­ge Ob­jek­te zei­gen, die kei­ne Re­kur­si­on er­zeu­gen, d. h. dass es kei­ne Ob­jek­tre­fe­ren­zen auf di­rek­te Vor­fah­ren in der Ob­jekt­hier­ar­chie ge­ben kann.

Track­re­fe­ren­zen kön­nen in ih­rer Be­deu­tung Tracks gleich­ge­stellt wer­den, al­ler­dings kann man den Na­men des Tracks für die spe­zi­el­le An­for­de­rung über­schrei­ben. Hier­zu er­folgt ei­ne Ab­fra­ge, be­vor die Re­fe­renz hin­zu­ge­fügt wird. Ins­be­son­de­re für Lis­ten von HTML-Aus­ga­ben ist die Um­be­nen­nung für die Aus­ga­be manch­mal sinn­voll.

Track­re­fe­ren­zen ent­ste­hen ana­log zu Ob­jek­tre­fe­ren­zen da­durch, dass man aus der Aus­wahl, die man über die Schalt­flä­che «Re­fe­renz» er­reicht, nicht ein Ob­jekt son­dern ei­nen Track aus­wählt. Das setzt vor­aus, dass der zu re­fe­ren­zie­ren­de Track be­reits un­ter ei­nem Ob­jekt ein­ge­tra­gen ist. Track- und Ob­jek­tre­fe­ren­zen sind aber auch nur sinn­voll, wenn sie ge­wöhn­li­che Aus­wer­tun­gen the­ma­tisch «ver­fei­nern», so­dass die so ge­nut­zen Tracks prak­tisch im­mer un­ter Ob­jek­ten auf­tre­ten soll­ten. Ist das nicht der Fall, bil­det man ein Pro-Forma-Objekt, un­ter dem al­le zu re­fe­ren­zie­ren­den Tracks zu­sam­men­ge­fasst sind. Tre­ten Tracks und Ob­jek­tre­fe­ren­zen ge­mischt auf, wird das beim La­den der Da­tei als Hin­weis aus­ge­ge­ben. Schäd­lich ist das zwar nicht, aber das Pro­gramm mag es nicht, weil nur Re­fe­ren­zen ei­ne sau­be­re und ein­heit­li­che Aus­ga­be als HTML-Datei ga­ran­tie­ren.

Ob­jek­te ver­fü­gen nur über sehr we­ni­ge At­tri­bu­te, na­ment­lich die Ak­tua­li­tät, die dar­stel­lungs­re­le­van­te Fach­be­deu­tung, die Lis­te der Fach­be­deu­tun­gen, die GUID, die Ob­jekt-ID, die Ob­jekt­län­ge und die Ver­ti­kal­di­stanz (Hö­hen­un­ter­schied), so­wie Na­me und Be­schrei­bung. Der Na­me muss nicht ein­deu­tig sein und kann je­der­zeit ge­än­dert wer­den.

Ob­jek­te sind die Kno­ten des Baums und oh­ne Blät­ter (Tracks oder Ob­jek­tre­fe­ren­zen) nicht sinn­voll nutz­bar. Tracks un­ter­schei­det man durch die vor­an­ge­stell­te Track-ID, wäh­rend Ob­jek­tre­fe­ren­zen durch die Be­zeich­nung «Re­fe­renz:» ein­ge­lei­tet wer­den.

Objekte werden dem Baum hin­zu­ge­fügt, in­dem ein Kno­ten, der «Be­zugs­kno­ten», se­lek­tiert und die Schalt­flä­che «Ob­jekt» be­tä­tigt wird. Die Schalt­flä­che ist nur dann sen­si­tiv, wenn der aus­ge­wähl­te Kno­ten dies zu­lässt, d. h. kei­ne Ob­jek­tre­fe­ren­zen oder Tracks auf­weist. Neue Kno­ten kön­nen ge­gen­über dem ak­tu­ell se­lek­tier­ten Kno­ten als über-, un­ter­ge­ord­net oder gleich­be­rech­tigt ein­ge­fügt wer­den. Da Kno­ten mitt­ler­wei­le sehr ein­fach ver­scho­ben wer­den kön­nen und auch Un­do/Re­do da­durch nicht ein­fa­cher wird, wur­de die Op­ti­on «Als neu­er Zweig des Bau­mes ab hier» auf­ge­ge­ben. Da­für kann ein gleich­be­rech­tig­ter Kno­ten vor oder nach dem ak­tu­ell se­lek­tier­ten Kno­ten ein­ge­fügt wer­den. «Ver­ges­se­ne» Glie­de­rungs­stu­fen las­sen sich so recht ein­fach ein­fü­gen. Der Dia­log un­ter­schei­det die Op­tio­nen nach ih­rer Ver­füg­bar­keit und graut sol­che aus, die un­gül­ti­ge Kom­bi­na­tio­nen von Tracks und Ob­jek­ten er­ge­ben wür­den.

Der Pfeil ko­piert den Text des Be­zugs­kno­tens in das Ein­ga­be­feld «Kno­ten­na­me».

Tracks wer­den zu Ob­jek­ten hin­zu­ge­fügt, in­dem sie aus ei­nem Dia­log aus­ge­wählt wer­den, der nach den gül­ti­gen Re­geln der Mehr­fach­s­e­lek­ti­on ar­bei­tet. Tracks sind letzt­lich Fleisch und Blut der Ob­jek­te, da sie die mess­ba­ren Grö­ßen (Län­gen, Hö­hen­un­ter­schie­de etc.) rea­li­sie­ren. Wird mehr als ein Track se­lek­tiert, so er­gibt sich die Ge­samt­län­ge des Ob­jekts, die «Ob­jekt­län­ge», aus der Sum­me der Ein­zel­län­gen eben die­ser Tracks, ge­mes­sen über die nicht ge­lösch­ten Track­punk­te der­sel­ben in der je­wei­li­gen Kar­ten­pro­jek­ti­on un­ter Berück­sich­ti­gung der Hö­hen­un­ter­schie­de. Dass die UTM-Kar­ten­pro­jek­ti­on un­ter un­güns­ti­gen Um­stän­den ei­nen Feh­ler von 40 Zen­ti­mer auf ei­nen Ki­lo­me­ter be­dingt, kön­nen wir im Rah­men der Mess­ge­nau­ig­keit ge­trost ver­nach­läs­si­gen.

Wichtiger ist da schon, dass die Tracks, die sich in der Sum­me mög­lichst feh­ler­frei zu ei­nem Ob­jekt­maß er­ge­ben sol­len, auch tat­säch­lich an­ein­an­der­sto­ßen. Um dies zu ge­währ­leis­ten, soll­ten die Op­ti­ons­schalt­flä­chen «Er­geb­nis nach La­ge sor­tie­ren» und «Er­set­zen statt hin­zu­fü­gen» an­ge­schal­tet sein. Bit­te be­den­ken Sie, dass beim Auf­star­ten des Dia­logs dann und nur dann die zu­ge­hö­ri­gen Tracks in der Lis­te se­lek­tiert sind, wenn im Ob­jekt­baum die Op­ti­on «se­lek­tiert» ein­ge­schal­tet ist, da die Lis­te im­mer nur die Se­lek­ti­on in der Kar­te wi­der­spie­gelt. Das gilt auch, wenn Tracks ggf. ge­ra­de nicht sicht­bar sind!

Wenn Sie den Dia­log be­stä­ti­gen, wer­den die Op­tio­nen aus­ge­wer­tet und die an­ge­ge­be­ne Dif­fe­renz da­zu be­nutzt, den Ab­stand der nach La­ge sor­tier­ten Tracks zu un­ter­su­chen. Wird die ma­xi­ma­le Dif­fe­renz über­schrit­ten, er­folgt ei­ne Feh­ler­mel­dung und das Er­geb­nis wird nicht über­nom­men.

Text­ob­jek­te bil­den ei­nen Son­der­fall des Ob­jekts. Sie tra­gen al­lein Tex­t­in­for­ma­tio­nen und kön­nen so zur Il­lus­tra­ti­on von Er­geb­nis­lis­ten die­nen. Wenn Sie ei­ne Po­si­ti­on im Ob­jekt­baum aus­ge­wählt ha­ben, er­zeu­gen Sie ein neu­es Text­ob­jekt durch Be­tä­ti­gen der «Text» Schalt­flä­che. Im Dia­log kön­nen Sie die Po­si­ti­on fest­le­gen, an der das Text­ob­jekt in den Ob­jekt­baum ein­ge­tra­gen wer­den soll.

Der Textobjektname soll­te spre­chend sein. Wenn Sie nur we­nig Text ha­ben, soll­ten Sie den Text­ob­jekt­na­men und den Text iden­tisch hal­ten. Dies er­rei­chen Sie mit den Schalt­flä­chen «Ko­pie­ren» so­wie «HTML-fett/kur­siv/klein», die den Text mit der Ken­nung für ei­ne ent­spre­chen­de For­ma­tie­rung in das Text­feld über­neh­men. Die Auf­lis­tung «Zer­matt an ei­nem Tag» il­lus­triert an­schau­lich, was die Text­ob­jek­te leis­ten kön­nen. Sie do­ku­me­nie­ren die Auf­stiegs­hil­fen, die na­tur­ge­mäß nicht in die Ge­samt­zahl der Pis­ten­ki­lo­me­ter ein­flie­ßen dür­fen.

Das Än­dern der Ob­jekt­hier­ar­chie ge­schieht durch «Zie­hen und Fal­len­las­sen». Sie kön­nen Ob­jek­te an­fas­sen und mit ge­drück­ter Maustas­te an ei­nen an­de­ren Ort ver­schie­ben. Das Pro­gramm über­prüft, was für ein Kno­ten ak­tu­ell un­ter der Maus liegt. Be­sitzt der Kno­ten be­reits Ob­jek­tre­fe­ren­zen oder Tracks, so wird das Ob­jekt auf der­sel­ben Ebe­ne vor das ak­tu­el­le Ob­jekt ver­scho­ben. Das Ko­pie­ren von Ob­jek­ten ist nicht mög­lich.

Sie lö­schen Ob­jek­te mit Hil­fe der gleich­na­mi­gem Schalt­flä­che. Da­bei kön­nen Sie ent­schei­den, ob die un­ter­ge­ord­ne­ten Ob­jek­te eben­falls ge­löscht wer­den sol­len, oder ob sie an­de­ren Kno­ten zu­ge­ord­net wer­den, was Sie vor al­lem dann nut­zen wer­den, wenn Sie ver­se­hent­lich ei­ne Hier­ar­chie­stu­fe zu­viel ge­bil­det ha­ben. In die­sem Fall wei­sen Sie die Kind­kno­ten dem über­ge­ord­ne­ten Ob­jekt zu. Die­ses darf aber dann kei­ne wei­te­ren Ob­jekt­kno­ten be­sit­zen.

Der Dia­log un­ter­schei­det die Op­tio­nen nach ih­rer Ver­füg­bar­keit und graut sol­che aus, die un­gül­ti­ge Kom­bi­na­tio­nen von Tracks und Ob­jek­ten er­ge­ben wür­den.

Da­bei kann es zu der Si­tua­ti­on kom­men, dass «al­le lö­schen» die ein­zi­ge ver­blei­ben­de Mög­lich­keit ist. Auch auf die­sen Sach­ver­halt wer­den Sie per Dia­log hin­ge­wie­sen, da Sie die Ak­ti­on im­mer noch ab­bre­chen kön­nen. Nur in die­sem ei­nen Fall ist die ers­te Op­ti­on be­reits aus­ge­wählt. In al­len an­de­ren Fäl­len wird bei ei­ner un­gül­ti­gen Aus­wahl die Schalt­flä­che OK aus­ge­graut.

Ob­jekt­fach­be­deu­tun­gen be­stim­men

Fach­be­deu­tun­gen für Ob­jek­te las­sen sich ma­nu­ell ver­ge­ben oder an­hand der­je­ni­gen der zu­ge­hö­ri­gen Tracks be­stim­men. Hat man Tracks be­reits mit Fach­be­deu­tun­gen at­tri­bu­tiert, kann GNavigia den Über­trag auf die Ob­jek­te vor­neh­men. Die Steue­rung ist, wie man sich leicht vor­stel­len kann, we­gen der Viel­zahl der Be­din­gun­gen ent­spre­chend un­durch­sich­tig - und zur­zeit auch noch nicht voll­stän­dig im­ple­men­tiert. Drei Pa­ra­me­ter­grup­pen be­stim­men das Er­geb­nis der Be­rech­nung, wo­bei die drit­te Grup­pe zur­zeit al­lein hin­sicht­lich der Fest­le­gung «nur wenn ein­deu­tig» im­ple­men­tiert ist.

  • Zu be­ar­bei­ten­de Ob­jek­te: Die Be­stim­mung der Ob­jekt­fach­be­deu­tun­gen kann über den ge­sam­ten Baum vor­ge­nom­men wer­den oder ab dem se­lek­tier­ten Kno­ten, des­sen ak­tu­el­ler Pfad an­ge­ge­ben wird. In­ter­essan­ter ist aber die Fra­ge, was mit den Ob­jek­tre­fe­ren­zen ge­sche­hen soll, die selbst kei­ne Fach­be­deu­tung tra­gen son­dern nur auf Ob­jek­te ver­wei­sen. Wird die Op­ti­on zur An­wen­dung der Er­geb­nis­se auf re­fe­ren­zier­te Ob­jek­te ein­ge­schal­tet, wer­den auch die re­fe­ren­zier­ten Ob­jek­te be­ar­bei­tet.
  • Wenn be­reits ei­ne Fach­be­deu­tung exis­tiert, kann fest­ge­legt wer­den, wie mit der neu er­mit­tel­ten Fach­be­deu­tung ver­fah­ren wer­den soll. Da­bei be­deu­tet «un­ter­ge­ord­net hin­zu­fü­gen», dass die Fach­be­deu­tung an die Lis­te der Fach­be­deu­tun­gen an­ge­hängt wird und da­mit die Dar­stel­lung des Ob­jekts nicht ver­än­dert, wäh­rend «über­ge­ord­net hin­zu­fü­gen» be­sagt, dass die Fach­be­deu­tung an den An­fang der Lis­te rückt und da­mit die Dar­stel­lung des Ob­jekts be­stimmt.
  • Neue Fach­be­deu­tun­gen wer­den nur dann in die Er­geb­nis­se ein­ge­stellt, wenn sie der ge­wähl­ten Be­din­gung ge­hor­chen. Be­steht ein Ob­jekt aus meh­re­ren Fach­be­deu­tun­gen, so ist ei­ne Zu­ord­nung nicht ein­deu­tig. Da­bei kann die Fra­ge, wel­che Fach­be­deu­tung für das Ob­jekt re­le­vant ist, nicht oh­ne Kennt­nis der Ge­samt­si­tua­ti­on ent­schie­den wer­den. Neh­men wir wie­der un­ser Bei­spiel mit den Ski­pis­ten: Ei­ne Pis­te mö­ge sich aus meh­re­ren Tracks zu­sam­men­set­zen, wo­von 5% der Ge­samt­stre­cke ei­ne mör­de­ri­sche Bu­ckel­pis­te ist und 95% flach wie die nord­deut­sche Tiefebe­ne. Sie wer­den die­ses Ob­jekt doch nicht al­len Erns­tes als «be­son­ders ein­fa­che Pis­te» mar­kie­ren wol­len, oder?

Ob­jekt­fach­be­deu­tun­gen lö­schen

Ob­jekt­fach­be­deu­tun­gen wer­den, wie an­de­re Fach­be­deu­tun­gen auch, nicht pau­schal ge­löscht, son­dern müs­sen mit der Aus­wahl aus der Lis­te der Fach­be­deu­tun­gen über­ein­stim­men, da im­mer nur die an­ge­ge­be­ne Fach­be­deu­tung aus der Lis­te der dem Ob­jekt zu­ge­ord­ne­ten Fach­be­deu­tun­gen ent­fernt wird.

Kon­text­me­nü des Ob­jekt­baums

Das Kontextmenü des Ob­jekt­baums er­laubt die Se­lek­ti­on des über­ge­ord­ne­ten Ob­jekts zur schnel­len Über­sicht über die Da­ten der be­rech­ne­ten Wer­te, na­ment­lich die Ge­samt­län­ge. Ist durch Än­de­run­gen an Tracks die Rei­hen­fol­ge durch­ein­an­der ge­ra­ten, kön­nen die Tracks hier neu sor­tiert wer­den.

Ins­be­son­de­re für die Aus­ga­be von Ob­jek­ten in Lis­ten­form müs­sen ggf. ein­zel­ne Tracks un­ter ei­nem zu­ge­hö­ri­gen Ob­jekt zu­sam­men­ge­fasst wer­den, was auch für die nach­fol­gend be­schrie­be­ne Struk­tur­prü­fung der Ob­jek­te wich­tig wer­den kann.

Ha­ben Sie nun meh­re­re Tracks un­ter ei­nem Ob­jekt grup­piert, ist es müh­sam, für die­se ein­zel­ne Ob­jek­te zu bil­den und die Tracks da­nach zu se­lek­tie­ren und zu­zu­ord­nen. Dies er­le­digt der Kon­text­menü­punkt «Er­zeu­ge Ob­jek­te aus Tracks». Die Funk­ti­on sam­melt die Tracks, trennt sie vom Ob­jekt­baum und er­zeugt für je­den Track ein Ob­jekt, das sie in der ge­ge­be­nen Rei­hen­fol­ge in den Baum ein­hängt und mit dem Track ver­sieht. Nicht über­tra­gen wird die Fach­be­deu­tung des Tracks. Die Ob­jekt­fach­be­deu­tung muss zur­zeit noch «von Hand» nach­ge­tra­gen wer­den.

Wenn Sie Lis­ten er­zeu­gen wol­len, die kei­ne dop­pel­ten Ein­trä­ge ent­ha­ten dür­fen, hilft die Funk­ti­on zur Struk­tur­prü­fung der Ob­jek­te. Sie er­mit­telt zu­gleich ge­lösch­te und un­sicht­ba­re Tracks in der Lis­te so­wie feh­len­de Ob­jekt­fach­be­deu­tun­gen für ein zu­vor aus­ge­wähl­tes Start­ob­jekt. Al­le Prü­fun­gen kön­nen auch ein­zeln durch­ge­führt wer­den.