AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Beliebigen Punkt in einem Viereck berechnen
Thema durchsuchen
Ansicht
Themen-Optionen

Beliebigen Punkt in einem Viereck berechnen

Ein Thema von hitzi · begonnen am 11. Jun 2009 · letzter Beitrag vom 11. Jun 2009
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#11

Re: Beliebigen Punkt in einem Viereck berechnen

  Alt 11. Jun 2009, 14:42
Zitat von Apollonius:
Wer sprach von zufällig? Im Ausgangspost heißt es nur "beliebig".
Jetzt wo du es sagt dämmert mir der Unterschied auch
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#12

Re: Beliebigen Punkt in einem Viereck berechnen

  Alt 11. Jun 2009, 15:01
Ich glaub ich muss näher am Problem bleiben - hatte versucht, dass etwas allgemeiner nachzufragen, aber das ergibt dann keinen Sinn, da tatsächlich an der Stelle die Koordinaten des Punktes fehlen. So noch mal von vorn.

Das Problem sind die zwei Wertesysteme - x/y und Latitude/Longitude. Ich möchte nun von den Lat/Lon Koordinaten in das x/y Format kommen.
Ich bekomme über eine API die Abmessungen des Gebietes heraus.
z.B.:
x(min) = 0
y(min) = 0
x(max) = 230400
y(max) = 161280

Über die oben angesprochene API kann ich noch für ein beliebigen Punkt (x/y) die Latitude und die Longitude berechnen lassen. Damit kann ich für die vier Eckpunkte der Landschaft (x(min)/y(min); x(max)/y(min); x(min)/y(max); x(max)/y(max)) die entsprechenden Lat/Lon Koordinaten ausrechnen.
z.B.:
x(min)/y(min): Lon = 16,4931468963623; Lat = 45,5079956054688;
x(max)/y(min): Lon = 13,5346508026123; Lat = 45,5083541870117;
x(min)/y(max): Lon = 16,5330562591553; Lat = 46,9597282409668;
x(max)/y(max): Lon = 13,4954843521118; Lat = 46,9601058959961;
(die max/min Bezeichnung stimmen an der Stelle nicht - ist noch im Programm falsch, aber sollte erstmal kein Problem sein)

Nun bekomme ich eine beliebige Lat/Lon Koordinate, welche in dem oben definierten Bereich liegt. Diese Koordinate muss ich nun irgendwie in den x/y Wertebereich bekommen. Die API bietet leider diese Art der Umrechnung nicht an, deshalb muss ich das selber berechnen.
z.B.
Lat: 46,369255065918 und Lon: 14,10085105896 wurden welche x/y Koordinaten ergeben?

[EDIT]

Ich hatte es erst nach dem Schema versucht:
x(aktuell) = (x(max) - x(min)) / (lon(max) - lon(min)) * lon(aktuell)
y(aktuell) = (y(max) - y(min)) / (lat(max) - lat(min)) * lat(aktuell)

Aber da traten immer leichte Abweichungen auf, da die Rechnung von einen Rechteck ausgeht.
Thomas
Besucht doch mal http://www.hitziger.net
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#13

Re: Beliebigen Punkt in einem Viereck berechnen

  Alt 11. Jun 2009, 15:15
also, sowas habe ich in meinem tools auch schonmal gehabt, du musst zuächst folgendes beachten: Das Koordinatensystem befindet sich auch einer Kugel!
deine Latitude Abstände bleiben gleich, 1°= 111km
bei der Longitude wirds schwieriger, aber machbar. denn diese ändern sich je nach Latiduekkoridnate. sprich am Äquator haste auch 111km abstand, der mit Zunehmender/abnehmender Latitude kleiner wird.

mach dir am besten mal eine Skizze und dann überlge mal wie du das ganze ausrechnen kannst!


LG marco!


EDIT: das ganze ist praktisch vom Winkel (Longitude) abhängig, da du die die Koordinaten von ner Kugel auf ne Fläche projezierts!
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#14

Re: Beliebigen Punkt in einem Viereck berechnen

  Alt 11. Jun 2009, 15:15
Aha ... Ich lese da mal raus, dass es sich um eine Landkarte dreht.

Aber welche Projektionsmethode wird für das ganze verwendet?
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#15

Re: Beliebigen Punkt in einem Viereck berechnen

  Alt 11. Jun 2009, 15:28
das ist egal. wenn ers für x,y haben will, muss er das ganze auf ne 2D fläche projezieren, wie eben beschrieben...
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#16

Re: Beliebigen Punkt in einem Viereck berechnen

  Alt 11. Jun 2009, 15:32
Lat/Lon ist WGS84. Das x/y Format ist ein benutzerdefiniertes Format, wo eine Einheit in etwa einen Meter entspricht. Ich hab auch schon die ganzen Lat/Lon in UTM Koordinaten umgerechnet. Da war dann die Abweichung noch geringer, aber eben noch vorhanden. Das Problem ist, dass ich die Koordinaten nicht so einfach ins Verhältnis stellen kann, wie ich es erst gemacht habe.
Thomas
Besucht doch mal http://www.hitziger.net
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#17

Re: Beliebigen Punkt in einem Viereck berechnen

  Alt 11. Jun 2009, 15:55
So hier schonmal die Skizzen vom Sachverhalt:

Im Bild 1 siehst du den Sachverhalt. Das Probelm ist das die Länge der Strecke parallel zum Äquator bei z.b. der longitude E008 20 17 in Abhängigkeit von der Latitude steht.
Am Äquator beträgt der Abstand von E008 zu E009 111km. nach Norden und Süden nimmt er entsprechend ab.

Also musst du dir ein Hilfsdreieck erstellen, siehe Skizze 2.

damit kannst du die Strecke b auf dem Äquator berechnen um die das Ganze abnimmt.
Der Winkel L entspricht deiner Latitude z.b. E008 20 17

Wenn du die Verkürzung ausgerechnet hast musst du einfach 111km * E008 20 17 rechnen, dann hast du die Strecke von 0,0 bis zur longitude E008 20 17 und die Strecke von z.b. N50 20 17/ E008 20 17 beträgt dann 111km * E008 20 17 - die Verkürzung.

Somit kannste alle Strecken deines Virecks ausrechnen und dies lassen sich ja nun sehr einfach in Koordinaten umwandeln!


Proniers mal aus!
Angehängte Grafiken
Dateityp: bmp sachverhalt1_467.bmp (1,65 MB, 12x aufgerufen)
Dateityp: bmp sachverhalt2_213.bmp (1,65 MB, 9x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz