2016-03-21 5 views
0

Nachdem die Breiten- und Längenzahlen von einem GPS-Gerät erhalten wurden, muss ich überprüfen, ob dieses Gerät an einem See oder einem Fluss liegt, der ein ziemlich großes Gebiet ist.Wie wird ein GPS-Standort mit einem Kartenbereich abgeglichen?

Ich könnte eine Reihe von GPS-Standorten entlang des Flusses als Array in der Datenbank speichern. Wenn der erkannte Ort in der Nähe eines Wertes im Array liegt, würde ich entscheiden, dass der Benutzer entlang/auf dem Fluss ist.

Diese Methode ist umständlich. Und es hat Probleme, wenn es um einen See geht. Ein Benutzer kann sich in einem See auf einem Boot befinden, mit einer Position weit weg von der Seegrenze.

Also, was ist eine bevorzugte Lösung zu entscheiden, ob ein GPS-Standort in der Nähe eines Flusses/Sees ist?

+0

Verwenden Sie Beacon für diese –

+0

Kein Weg. Sollen wir Leuchtfeuer entlang eines Flusses werfen? Und das Zentrum eines Sees kann weit mehr als 10 m von einem Seeseite entfernt sein. – Blaise

+0

Tue das nie, aber nach meinem Aspekt ist Beacon die einzige beste Option in deinem Fall. weil Sie bereits mit GPS oder Netzwerkstandort fehlgeschlagen sind. Berechne radiusbasierte Berechnung, wenn du in 10m Radius bist, dann bist du ganz in der Nähe von Boot. Beacons bieten bereits diese –

Antwort

0

Die korrekte Methode besteht darin, einen Punkt im Polygonalgorithmus zu verwenden. Digitale Karte bieten Polygone für Wasserflächen, wie See oder Fluss.

Es gibt linienbasierte Wasserstrukturen (mittlere Linie von kleinen Fluss) und Polygon basiert. Diese Polygone haben einen Namen angehängt.

Der schwierige (oder teure) Teil ist es, die Polygone zu bekommen. Wenn Sie keinen Vertrag mit den beiden großen digitalen Kartenprovidern (TomTom und Here) haben, können Sie nur OpenStreetMap ausprobieren.

+0

Danke. Ich schätze, das Polygon ist vielleicht einen Versuch wert. – Blaise

Verwandte Themen