GeoHash est une excellente méthode pour coder la latitude et la longitude d'un point dans une chaîne. C'est concis, en raison de l'utilisation de chiffres + lettres, et la précision peut être réglée en ajoutant des caractères à la fin.
Je cherche une méthode équivalente pour coder des polygones, pas des points. J'ai vu deux façons de le faire:
- géohacher tous les points du polygone, puis les concaténer, puis compresser la chaîne résultante à l'aide d'algorithmes de compression de texte classiques.
- référencer tous les géohashes inclus dans le polygone. Il s'agit de la méthode RecursivePrefixTree - voir http://www.opensourceconnections.com/2014/04/11/indexing-polygons-in-lucene-with-accuracy/ .
J'aimerais que le code puisse être manipulé par des humains, c'est-à-dire. copiés manuellement, non seulement par des machines comme index.
Edit: voir aussi la discussion (en français) sur http://seenthis.net/messages/269838 .
polygon
latitude-longitude
compression
geohash
Sylvain Lesage
la source
la source
Réponses:
Jetez un œil à Georaptor . Crée un ensemble compressé de géohashes, c'est-à-dire une combinaison de géohashes à différents niveaux.
la source
L'implémentation la plus robuste se trouve dans la bibliothèque de géométrie s2 avec son implémentation Polygon Cover. Utilise S2CellIds, une amélioration par rapport à GeoHashes, comme unité.
la source
Avec la récente publication par Google de Open Location Code , il y a eu un bon questionnement sur Geohash. Malheureusement, je n'ai rien vu sur les polygones Geohash.
Comme vous recherchez différentes implémentations pour des solutions de type Geohash, regardez la comparaison Google de divers algorithmes et solutions à https://github.com/google/open-location-code/blob/master/docs/comparison.adoc
C'est clairement pour des points mais cela peut vous aider pour votre "quête" de polygone Geohash.
la source
Une implémentation très simple consisterait à effectuer BFS en remplissant le polygone avec les geohashes. Ensuite, vous pouvez décomposer récursivement les bords en une plus grande précision.
Voici un exemple Exemple BFS
la source
La fonction PostGIS ST_GeoHash renvoie un GeoHash basé sur le type de géométrie en entrée. Bien sûr, toute géométrie autre qu'un point entraînerait une précision inférieure.
la source