![]() |
Re: Beliebigen Punkt in einem Viereck berechnen
Zitat:
|
Re: Beliebigen Punkt in einem Viereck berechnen
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. |
Re: Beliebigen Punkt in einem Viereck berechnen
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! |
Re: Beliebigen Punkt in einem Viereck berechnen
Aha ... Ich lese da mal raus, dass es sich um eine Landkarte dreht.
Aber welche Projektionsmethode wird für das ganze verwendet? |
Re: Beliebigen Punkt in einem Viereck berechnen
das ist egal. wenn ers für x,y haben will, muss er das ganze auf ne 2D fläche projezieren, wie eben beschrieben...
|
Re: Beliebigen Punkt in einem Viereck berechnen
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.
|
Re: Beliebigen Punkt in einem Viereck berechnen
Liste der Anhänge anzeigen (Anzahl: 2)
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! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz