|
|
|
### Idee:
|
|
|
|
Bei Klick auf ein Kartensymbol, das den Fundort einer Probe repräsentiert, muss der passende Steckbrief und das
|
|
|
|
passende 3DModell geladen werden.
|
|
|
|
Schaffe also eine Verbindung zwischen der Kartenposition/Symbol, dem Steckbrief und dem 3DModell einer Probe.
|
|
|
|
|
|
|
|
### Umsetzung:
|
|
|
|
Die Kartenposition wird durch die <Proben-ID> repräsentiert, welche in dem Shape-File enthalten ist, das die
|
|
|
|
Kartenposition enthält; der Steckbrief und das 3DModell jeweils durch ihre Dateinamen. Die Verbindung dieser
|
|
|
|
Informationen wird in dem JSON-Dokument CrossReferencer.json gespeichert, welches folgende Struktur aufweißt:
|
|
|
|
|
|
|
|
Struktur:
|
|
|
|
{
|
|
|
|
"items":[{"probe":<Proben-ID>, "steckbrief":<Name der Steckbrief-Datei>, "scan3d":<Name der Handstück-Datei>},
|
|
|
|
...
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
Dabei müssen alle Werte - also <Proben-ID>, <Name der Steckbrief-Datei>, <Name der Handstück-Datei> - als
|
|
|
|
Strings, ohne File-Extension, in doppelten Hochkommata eingetragen werden.
|
|
|
|
|
|
|
|
Beispiel:
|
|
|
|
{
|
|
|
|
"items":[{"probe":"921","steckbrief":"steckbrief","scan3d":"Handstueck_CS3_3D"},
|
|
|
|
{"probe":"5761","steckbrief":"steckbrief2","scan3d":"Astronaut"},
|
|
|
|
{"probe":"38094","steckbrief":"steckbrief","scan3d":"Handstueck_CS3_3D_old"}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
In dem JavaScript-File CrossReferencer.js sind die benötigten Funktionalitäten wie folgt abgelegt, die alle Teil der
|
|
|
|
dort definierten Klasse CrossReferencer sind:
|
|
|
|
|
|
|
|
| Name der Funktion | Wirkung der Funktion |
|
|
|
|
| ------ | ------ |
|
|
|
|
| readJSONFile("rel. Pfad") | JSON-File als JavScript-Object einlesen; "rel. Pfad" = der relative Pfad zum JSON-File bezogen auf Hauptverzeichnis; derzeit einfach nur Dateiname XReferencer.json, da in Hauptverzeichnis; Hinweis: das eingeladene JavaScript-Object wird als static Variable "crossRefJSON" der Klasse CrossReferencer abgespeichert, kann also mit "this.xRefJSON" verwendet werden. |
|
|
|
|
| getAllByProbe("Probe-ID") | Hole aus eingeladenem JSON-File CrossReferencer.json alle Einträge, deren Feld "probe" den Wert "Probe-ID" hat und gebe diese als Array von JavaScipt-Objecten zurück; WICHTIG: in darauf aufbauenden Funktionen wird davon ausgegangen, dass genau ein JavaScript-Object gefunden wurde! Die Probe-ID sollte also eindeutig in dem JSON-File sein! |
|
|
|
|
| scan3d("Probe-ID") | Nutzt docPathScan3d und getAllByProbe, um für "Probe-ID" Dokumentpfad zum passenden 3DModell zurückzugeben; wenn getAllByProbe leeres Array ergibt, wird Default-Pfad zurückgegeben |
|
|
|
|
| docPathScan3d("Modelname") | Erstellt Dokumentpfad zum 3dModell "Modelname" |
|
|
|
|
| steckbrief("Probe-ID") | wie scan3d nur für Steckbrief |
|
|
|
|
| docPath(<Modelname>) | wie docPathScan3d nur für Steckbrief | |