![]() |
Simple Moving Map in XML?
Hallo Zusammen!
Ich würde gerne eine einfache Moving Map in ein Panel einbauen, also nicht eine in der Form des GPS im FS2004. Dazu möchte ich ein BMP (Karte) benützen welches sich so quasi dreht oder bewegt. Hat jemand eine Ahnung wie sich das in XML umsetzen lässt :confused: Ich stelle mir das irgendwie so vor: Man nimmt dieses BMP und definiert die Mitte davon als Koordinaten nördlich/westlich. Dann müsste man wohl auch noch weitere Koordinaten des BMP definieren wie z.B. links recht oben unten....oder wie geht das? Vielen Dank für jede Hilfestellung:-) |
du meinst bestimmt sowas wie auf der airshow.
mittelpunkt definieren, nach N,S,W,E in abhängigkeit vom abstand vom ausgangspunkt verschieben und danach entsprechend aircraft heading drehen. zum zoomen einfach verschiedene bmp mit unterschiedlicher auflösung verwenden und über <visible>tags anwählen. aber wo kriegste denn ne bmp her, die die gesamte erde abdeckt und ne gute detaillierte auflösung bringt? so ein bmp von nem abgerollten globus ist doch zu weit weg, da siehste ja nicht, wenn sich der flieger bewegt. |
Ich sehe da ein grundsätzliches Problem:
Die Karte könnte man als Hintergrund-bitmap in das gauge übernehmen. Oder als Element, dass unter einer Maske verschoben wird. Allerdings könnte man sie nicht wechseln oder zoomen, sondern nur die jeweils benötigte Karte sichtbar schalten. Der gesamte Kartensatz müsste also im gauge "fest verdrahtet" sein, ebenso die Referenzierung. Damit ließe sich nur ein sehr begrenzter Teil der Erdoberfläche abdecken. Zum "Wechseln" der Kartenblätter müsste man Dateien lesen können, diese Funktion wird aber von xml meines Wissens nicht unterstützt. :confused: Harry, übernehmen Sie!:rolleyes: Gruß R. |
Also solange die Karte klein genug ist, ist das möglich. Also eine Karte von deinem Heimatland, der Schweiz, wird sicher möglich sein. Dort fällt die Erdkrümmung auch noch nicht so ins Gewicht.
Aber ein viel größeres Gebiet halte ich für unmachbar. Grundsätzlich würde ich es so machen wie Schulli geschrieben hat. Also 2 Shift für x und y Richtung. Damit kannst du die Karte im "North Up" Modus verschieben. North Up ist das einfachste. Schwieriger wirds mit Kursverfolgung, also wenn die Karte immer in Flugrichtung gedreht wird. Dann musst du zusätzlich ein Rotate für die Himmelsrichtung einbauen. Außerdem kannst du die Karte dann nicht mehr so ohne weiteres verschieben. Denn es kann ja sein dass Norden dann nicht oben ist, sondern z.B. rechts. Du musst also mit den Winkelfunktionen sin und cos herausrechnen, in welche Richtung verschoben werden muss. Also z.B.: Shift x = Breite*sin(Flugrichtung)+Länge*cos(Flugrichtung) (ich hoffe ich hab mich jetzt nicht mit sin und cos vertan...!) Grüße, Harri |
Hallo Zusammen!
Danke für Eure Inputs :-) Ich hab wohl vergessen zu erwähnen dass sich die Map nur auf das schweizer Ländle beziehen soll. Also mit freundlicher Mithilfe gestaltet sich die Sache so: Die Koordinaten beziehen sich nicht auf die Schweiz im folgenden Beispiel (noch nicht)! Das Problem dass ich dabei noch habe ist wie und wo ich die Koordinaten genau eingebe. Bei diesem gauge gibt es also 2 Maps, full und small wo man also eine Zoom Position hat. Kann mir evtl. jemand helfen wie man die Koordinaten einträgt? Gruss Beat PHP-Code:
|
So, ich habe Deinen Code der Form halber mal in eine andere Form gebracht:
PHP-Code:
|
Weenn ich es richtih interpreteiren, steuert der Ausdruck
PHP-Code:
1. die Variable G1 gleich Null ist: PHP-Code:
PHP-Code:
PHP-Code:
Anschließend verschiebst Du. Da Du kein rotate vorgesehen hast, also die Karte nicht drehst, halte ich die sin- und cos-Geschichte erst einmal für entbehrlich. Zum Berechnen der Shift-größe folgende Überlegung: Der Abstand zwischen zwei Längengraden (Meridianen) beträgt am Äquator ca. 111 km. Deine Karte hat eine Ausdehnung von -10.8 bis 2.2 in der Breite, also 13 Längengrade, macht 1443 km. Das bitmap ist 4480 Pixel breit, also deckt ein Pixel 0,3 KM ab. Oder anders herum, bei einer Flugstecke von 1km müsstest Du die Karte ca. 3 Pixel in x-Richtung verschieben. Dazu müsstest Du Deinen momentanen Standort vom gedachten Kartenmittelpunkt (-4.3) subtrahieren, und, da sich die Karte unter dem flugzeug wegschiebt, mit -1 multiplizieren: PHP-Code:
PHP-Code:
PHP-Code:
|
BTW: Du solltest vielleicht auch bdedenken, dass das von Dir gewählte Bitmap swiss_full in der gedachten Größe 63Mb schwer ist.
Gruß R. |
Guten Abend!
Vielen Dank für die Übersetzung :-)!!! Ich hab damit nun noch etwas rumgebastelt und das Ganze in ein Hornet-Panel eingebaut was nun folgendermassen ausschaut: http://www.opus2.ch/Hornetnight.jpg Womit Du absolut Recht hast ist das Problem mit der Grösse der Karte. Meines ist zwar nicht ganz so gross wie Du genannt hast, aber dennnoch sehr unattraktiv für ein Gauge. Es müsste immense Ausmasse haben um wirklich reinzoomen zu können um überhaupt noch scharfe Konturen erkennen zu können. Da bleibt mir wohl nichts anderes übrig als zu der Vektoren-Version zurück zu kehren. Beim traditionellen GPS des FS9 lässt sich soweit ich weiss die Farbgebung des Terrains nicht ändern. Da ich eben dieses blaustichige Terrain benötige, müsste ich wohl eine einfärbende Folie über das Terrain legen. Weiss jemand in welchem Format ich dieses erstellen/speichern müsste? |
Du könntest aber auch die Karte in mehrere eile zerhacken.
Und auch nicht zu bviele Zoomstufen einbauen, z.B. nur 2. Die bmp's für die Karten am besten nur als 16Farben BMP abspeichern. Irgendwie müsste es also schon möglich sein das Gauge lauffähig zu machen! Grüße, Harri |
| Alle Zeitangaben in WEZ +2. Es ist jetzt 19:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag