Methoden zur Geohash von Polygonen?

11

GeoHash ist eine hervorragende Methode, um den Breiten- und Längengrad eines Punkts in eine Zeichenfolge zu codieren. Aufgrund der Verwendung von Zahlen + Buchstaben ist es präzise und die Genauigkeit kann durch Hinzufügen von Zeichen am Ende angepasst werden.

Ich suche nach einer äquivalenten Methode zum Codieren von Polygonen, nicht von Punkten. Ich habe zwei Möglichkeiten gesehen:

Ich möchte, dass der Code von Menschen manipuliert werden kann, dh. manuell kopiert, nicht nur von Maschinen als Index.

Bearbeiten: Siehe auch die Diskussion (auf Französisch) unter http://seenthis.net/messages/269838 .

Sylvain Lesage
quelle
Willkommen bei GIS SE. Sind Sie offen für die Verwendung von Python / Geo-Bibliotheken?
Artwork21
Klar ja. Bei der Frage geht es jedoch mehr um Konzepte und Algorithmen als um Implementierungen.
Sylvain Lesage

Antworten:

2

Die robusteste Implementierung befindet sich in der s2-Geometriebibliothek mit ihrer Polygon Cover-Implementierung. Verwendet S2CellIds, eine Verbesserung gegenüber GeoHashes, als Einheit.

tmcw
quelle
1

Mit der jüngsten Veröffentlichung von Open Location Code durch Google gab es eine gute Frage zu Geohash. Leider habe ich nichts über Polygone Geohash gesehen.

Wenn Sie nach verschiedenen Implementierungen für Geohash-ähnliche Lösungen suchen, sehen Sie sich den Google-Vergleich verschiedener Algorithmen und Lösungen unter https://github.com/google/open-location-code/blob/master/docs/comparison.adoc an

Es ist eindeutig für Punkte, aber es kann Ihnen bei Ihrer Polygon-Geohash- "Quest" helfen.

ThomasG77
quelle
1

Eine sehr einfache Implementierung wäre die Durchführung eines BFS, bei dem das Polygon mit den Geohashes gefüllt wird. Dann können Sie die Kanten rekursiv in eine höhere Genauigkeit aufteilen.

Geben Sie hier die Bildbeschreibung ein

Hier ist ein Beispiel für ein BFS

Carlos
quelle
0

Die PostGIS-Funktion ST_GeoHash gibt einen GeoHash basierend auf dem Eingabegeometrietyp zurück. Natürlich würde jede andere Geometrie als ein Punkt zu einer geringeren Genauigkeit führen.

Shree
quelle