Ergebnis 1 bis 9 von 9
-
Bin neu hier
- 05.02.2009, 20:29
- #1
Hallo zusammen
Ich will ein Programm schreiben, dass abhängig von meiner Position OVI(Ort von Interesse) anzeigt.
Ein Beispiel:
Meine Position ist 46.6,9.4, nun habe ich mehrere Punkte die ich auf einer art Radarkarte anzeigen möchte, z.B. diese Punkte: 46.7,9.4; 46.8,9.4 usw...
Meine Position (46.6,9.4) ist in der Mitte diese Bildes. Wie ermittle ich, wo ich die anderen Punkte zeichnen muss?
Bis jetzt rechne ich die Distanz zwischen meiner und der des OVI aus. Doch wie kann ich ermitteln, wo ich diese auf meinem Bild zeichnen muss?
Ich bin mir nicht sicher, aber so wie ich das verstehe kann ich aus den Längen- und Breitengrade kein lineares Koordinatensystem aufbauen.
(Wobei in meiner Distanzberechnung davon ausgegangen wird, das die Erde eine Kugel ist...)
Was ich weiter sicher ermitteln muss, ist, in welche Richtung ich mich bewege, damit ich feststellen kann, ob z.B. die Längengrade vor mir kleiner oder grösser werden -> daraus kann ich feststellen ob ein OVI vor neben oder hinter meiner Position befindet...(ist das verständlich?)
Ich finde keine Lösung... Kann mir jemmand helfen?
Gruss subiGTsubi
-
- 05.02.2009, 22:00
- #2
Nun, du brauchst die Richtung. Wenn ich mich recht erinnere, sind doch Längen- und Breitengrade einfach ein orthogonales Gitter, auf einen Geoid (oder Kugel) projiziert. also kannst du sie auch wieder zurückwerfen und wie ein ganz normales kartesisches Koordinatensystem behandeln.
Also kannst du die Entfernung einfach trangulieren und dann zurück auf eine Kugel werfen.
-
Bin neu hier
- 05.02.2009, 22:16
- #3
Danke für deine Antwort!
Leider verstehe ich nur Bahnhof...
Also, ich rechne die horizontale und vertikale Distanz zwischen meiner und der OVI Position aus.
Bei meinem Bild ist der Punkt 0,0 rechts oben. Die Mitte, also meine Position,ist bei 65,65.
Kann ich, wenn ich die Bewegungsrichtung durch zwei Punkte festgestellt habe, das GPS(oder welches auch immer) Koordinatensystem auf meines übertragen?
Wenn ja, würde das z.B heissen:
Meine Position ist 46.7,9.2 d.h. in meinem Bild ist 65 = 46.7 , 65 = 9.2
demzufolge könnte je nach Bewegungsrichtung 66 = 46.8, 66 = 9.3 sein?
Gruss subiGTsubi
-
- 06.02.2009, 08:10
- #4
ja, so etwa würde ich das sehen. die frage ist nur, was machst du mit positionen, die weiter weg sind? du musst dir eine kompressionsfunktion überlegen, wohl logarythmisch, damit werte wie 170,6 nicht ausserhalb deines Schirms landen. oder du machst einfach einen deckel, alles was über den rand hinaus gehen würde, wird auf den rand gezeichnet.
-
Bin neu hier
- 06.02.2009, 08:45
- #5
Der Benutzer kann einen Radius einstellen, z.B. 10km, und alle OVI in diesem Radius sollen anezeigt werden.
Danke für deine Hilfe.
Ich versuche es gleich heute Abend noch einmal.
Gruss subiGTsubi
-
Fühle mich heimisch
- 07.02.2009, 13:12
- #6
Hallo
ich habe mal vom einem Excel Formular etwas von Visual Basic auf C konvertiert.
Ich habe es zwar getestet könnten aber Fehler drinnen sein.
Deswegen das originale Excel vom Internet mit link hier:
http://williams.best.vwh.net/index.html
(Excel spreadsheet)
Im Attachement meine C-Umsetzungen:
Was Du brauchst ist die Funktion gr_inverse_ell(inverse_ell im excel sheet VB editor).
Konstanten wie radius und flat_inverse sind im Kommentar angegeben.
Die Formel berechnet von 2 WGS84 Koordinaten die Distanz und die Richtung aus.
Edit: Bei 10km Distanz kannst Du die excel funktionen gcdist(Berechnen der Distanz) und gcbearing(Berechnen des Winkels) verwenden, die ich in meinem Code nicht konvertiert habe.
-
Bin neu hier
- 10.02.2009, 20:42
- #7
Danke für die Information!
Leider verstehe ich nicht so viel von mathe...
Also die Formel(gcdist) für die Distanz berechnung habe ich schon.
Mein Problem ist eigentlich nur noch, dass ich nicht weiss wo ich die OVIs
zeichnen(darstellen) soll.
Folgendes mache ich:
Ich berechne die horizontale und die vertikale Distanz zu meiner Position aus, indem ich folgendes mache:
-distanz horz: myPosLat,myPosLon zu oviLat, myPosLon
-distanz vert: myPosLat,myPosLon zu myPosLat, oviLon
Nun habe ich die zwei Distanzen. Nehmen wir an diese betragen jeweils 2km.
Wie finde ich heraus, wo ich diese Punkte in Abhängigkeit von meiner Position zeichnen muss?
Gruss subiGTsubi
-
Fühle mich heimisch
- 11.02.2009, 10:31
- #8
Also ich würde die Distanz(gcdist) und den Winkel (gcbearing mit berechneten Winkel der Nordpol, Punkt1, Punkt2 einschliesst)
nehmen und einfach normale x und y Koordinaten ausrechnen, mit
x = Distanz * Sinus(Winkel), y = Distanz*Cosinus(Winkel).
Dann einen Masstab anlegen(z.B 20 Pixel ein Kilometer).
Da diese Formel auch negative Werte ergibt ist die Darstellung des neuen Punktes einfach.
Derzeitiger Punkt P1 mit Koordinaten(px,py)
Berechneter Punkt P2 mit Koordinaten (px+x,py+y)
Bei Sinus und Cosinus darf man die Umrechnung des Winkels auf Radiant nicht vergessen
(1 Grad = Pi/180 Radiants mit Pi=3.14159265)
Also x= Distanz*Sinus(WinkelInGrad*Pi/180)
-
Unregistriert Gast
Hallo,
ich arbeite gerade an einer Anwendung, bei der ich Punkte auf eine Karte zeichne. Vielleicht hilft dir das hier weiter:
Sagen wir, du hast deinen Punkt 46.7,9.2. An dem Punkt willst du stehen, es soll also das Zentrum der Karte sein. Nun musst du relativ davon die ecken bestimmen und diese auf Koordinaten legen. Also sagen wir mal, dein Feld ist quadratisch und hat dann folgende Ecken (damit man besser rechnen kann sind alle koordinaten in Dezimaldarstellung in mit 10 Multipliziert)
465,90 469,90
465,94 469,94
Du musst den Punkt oben links in der Ecke, also den punkt 0,0 in deiner Grafik von deinen Koordinaten Subtrahieren, hast du also den punkt 46.6,9.1 dann ist der Punkt in der Grafik bei x = (466-465) = 1 und y = (91-90) = 1. Dann kannst du in der Grafik bei dem Punkt 1,1 die Makierung setzen. Damit hast du zwei Fliegen mit einer klappe geschlagen:
1. Wenn der Wert negativ ist, nach der Subtraktion des Nullpunktes, dann weißt du schonmal, er liegt außerhalb des von dir festgelegten Bereichs, du kannst die Überprüfung auch machen wenn du den rechten unteren Punkt Subtrahierst und einen positiven wert erhälst.
2. Brauchst du dir über die Richtung oder die Abhängigkeit zu deinem Punkt keine Gedanken machen, wenn dein Punkt immer im Mittelpunkt steht. Dafür musst du natürlich das Rechteck mit deiner Position verschieben, aber das ist lediglich Addition der Differenz deiner Positionsinformationen (sagen wir du bist eine Minute nach rechts gelaufen, werden alle Längenangaben mit 0.1 Addiert usw.)
Hoffe das hat dir ein wenig weiter geholfen, ansonsten frage ruhig.
Ähnliche Themen
-
OT-Orange Thanks Punkte weg ?
Von @lexander im Forum PlaudereckeAntworten: 2Letzter Beitrag: 26.05.2010, 13:12 -
Nur aktive Aufgaben darstellen? WinMob. 6.1
Von Unregistriert im Forum Software (Touchscreen)Antworten: 5Letzter Beitrag: 15.05.2009, 06:41 -
Geburtstage darstellen
Von Tingel77 im Forum Touch HD InterfaceAntworten: 10Letzter Beitrag: 05.12.2008, 08:37 -
2 Punkte die mir nicht gefallen
Von thasnow im Forum Samsung SGH i780Antworten: 5Letzter Beitrag: 04.07.2008, 09:42 -
Wieviel Punkte holt der FC Thun?
Von nepi im Forum PlaudereckeAntworten: 20Letzter Beitrag: 19.12.2005, 18:30
Pixel 10 Serie mit Problemen:...