GeoHash es un método excelente para codificar la latitud y longitud de un punto en una cadena. Es conciso, debido al uso de números + letras, y la precisión se puede ajustar agregando caracteres al final.
Estoy buscando un método equivalente para codificar polígonos, no puntos. Vi dos formas de hacerlo:
- geohash todos los puntos de polígono, luego los concatena, y luego comprime la cadena resultante usando algoritmos de compresión de texto clásicos.
- referencia todas las geohashes incluidas en el polígono. Es el método RecursivePrefixTree: consulte http://www.opensourceconnections.com/2014/04/11/indexing-polygons-in-lucene-with-accuracy/ .
Me gustaría que el código pudiera ser manipulado por humanos, es decir. copiado manualmente, no solo por máquinas como índice.
Editar: ver también la discusión (en francés) en http://seenthis.net/messages/269838 .
polygon
latitude-longitude
compression
geohash
Sylvain Lesage
fuente
fuente
Respuestas:
Echa un vistazo a Georaptor . Crea un conjunto comprimido de geohashes, es decir, una combinación de geohashes en diferentes niveles.
fuente
La implementación más robusta se encuentra en la biblioteca de geometría s2 con su implementación Polygon Cover. Utiliza S2CellIds, una mejora sobre GeoHashes, como su unidad.
fuente
Con el lanzamiento reciente de Google de Open Location Code , hubo un buen cuestionamiento sobre Geohash. Desafortunadamente, no vi algo sobre los polígonos Geohash.
Mientras busca diversas implementaciones para soluciones similares a Geohash, consulte la comparación de Google de varios algoritmos y soluciones en https://github.com/google/open-location-code/blob/master/docs/comparison.adoc
Es claramente para los puntos, pero puede ayudarlo para su "búsqueda" del polígono Geohash.
fuente
Una implementación muy simple sería realizar BFS llenando el polígono con las geohashes. Entonces puede desglosar recursivamente los bordes con mayor precisión.
Aquí hay un ejemplo Ejemplo BFS
fuente
La función PostGIS ST_GeoHash devuelve un GeoHash basado en el tipo de geometría de entrada. Por supuesto, cualquier geometría que no sea un Punto daría como resultado una precisión menor.
fuente