GPS - Koordinate in Polygon aus n-Beliebigen Eckpunkten

  • Antworten:4
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 40

13.05.2018, 00:41:53 via Website

Hallo,

Ich programmiere derzeit eine App die den aktuellen Standort abruft. Ich möchte nun prüfen ob der Punkt(Breitengrad,Längengrad) in einem zweidimensionalen Vieleck liegt, das n Eckpunkte(Breitengrad,Längengrad) hat.

Breitengrad und Längengrad sind jeweils ein Double mit sieben Nachkommastellen, z.B: 52.4332247.

Ich möchte eine Methode erstellen, bei der ich n-Beliebige Eckpunkte mitgeben kann und einen Punkt Q darauf überprüfe, ob er in diesem Polygon liegt oder nicht.

Hat da jemand einen logischen Algorithmus dafür?

Ein Beispiel, falls sich jemand probieren möchte, ich brauche jede Hilfe!

Bsp1:

double breitengradEckpunkte[] = {53.4373134,53.4152165,53.4900436,53.5777865,53.5133714};
double längengradEckpunkte[] = {10.9740456,11.0375597,11.1123654,11.0773853,10.8375867};

Punkt q;
q.breitengrad = 53.5900625;
q.längengrad = 10.6302198;

Prüfe ob Punkt Q in Polygon p = (breitengradEckpunkte,längengradEckpunkte) liegt.

Danke für jeden Tipp,

LG Felix

Ps: GPS-Koordinaten kann man hier gut verarbeiten (Google-Maps basierend): https://www.gpskoordinaten.de/

— geändert am 13.05.2018, 00:43:48

Diskutiere mit!
  • Forum-Beiträge: 2.909

13.05.2018, 09:02:50 via Website

Hallo Felix,

Damit ich E/W & N/S nicht berücksichtigen musst, verschiebe ich meine Punkte immer um 6500
Meilen ohne MAGVAR berücksichtigung in den positiven Bereich. (Double-Type)
Danach kannst du jedes erdenkliche Berechnungs-Konzept anwenden.

Beim Gegenchecken bin ich hierüber gestolpert (Natürlich nicht geprüft)
https://stackoverflow.com/a/38280141/6337627

— geändert am 13.05.2018, 09:04:39

Liebe Grüße - Stefan
[ App - Entwicklung ]

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 40

13.05.2018, 16:18:23 via Website

E/W & N/S sind in diesem Fall egal, da es sich bei meiner App um eine Art "Geocaching" App handelt, die nur mit Koordinaten im positiven Bereich arbeitet, da das ganze ziemlich regional ist. Man bekommt ein Bild, muss zu dem Ort gehen/fahren und GPS erkennt dann ob man dort ist oder nicht. Deshalb brauche ich nun einen tolleranzbereich. Natürlich könnte ich auch die genauen Koordinaten +-6 Meter angeben, jedoch sollte es auch erkannt werden wenn man z.B ein Grundstück wie dieses betritt:

User uploaded photo

Und ich würde gerne ohne Google Maps, etc. arbeiten...

— geändert am 13.05.2018, 16:19:36

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 2.909

13.05.2018, 17:58:27 via Website

E/W & N/S sind in diesem Fall egal, da es sich bei meiner App um eine Art "Geocaching" App handelt, die nur mit Koordinaten im positiven Bereich arbeitet, da das ganze ziemlich regional ist.

Nein ist es nicht, weil du mit meiner oben genannten Verschiebung besser den Entfernung-Faktor berechnen kann und du im Pythagoras immer im gültigen Bereich bleibst.
Du kannst auch gerne mit vielen if / cases arbeiten , das obliegt dir - es war nur ein Tip :-)

Und ich würde gerne ohne Google Maps, etc. arbeiten...

Dann nimm doch einfach so etwas hier und mache es zu Fuss.
https://stackoverflow.com/questions/217578/how-can-i-determine-whether-a-2d-point-is-within-a-polygon

Eigentlich ist deine Frage keine Android-Frage , sondern eher eine reine Mathematische.
Was du dazu im Grunde genommen als Ausgang nimmst (C/C++ etc), ist schnuppe.

Points within Polygon Berechnungen gibt es wie Sand am mehr.

— geändert am 13.05.2018, 18:36:06

Liebe Grüße - Stefan
[ App - Entwicklung ]

Hilfreich?
Diskutiere mit!

Empfohlene Artikel