¿Hay compensaciones entre usar un geohash y usar un quadkey como índice espacial?

8

QuadKey

Bing Maps utiliza una estructura quadkey para su esquema de mosaico. Aquí hay una descripción general del concepto http://msdn.microsoft.com/en-us/library/bb259689.aspx .

GeoHash

Un geohash parece ser la representación más aceptada en la palabra de código abierto http://en.wikipedia.org/wiki/Geohash

Entonces, lo que me pregunto es si hay alguna compensación entre los dos cuando se usa como índice espacial. Ambos están enraizados en el concepto quadtree y tienen sus pros y sus contras, pero ¿hay beneficios al usar uno sobre el otro?

agentargo
fuente
Además, aquí hay una implementación en Python de un quadkey github.com/buckheroux/QuadKey .
agentargo

Respuestas:

3

Hay varios beneficios para geohash sobre quadkey:

  • soporte de idiomas cruzados . Geohash tiene implementaciones de código abierto en varios idiomas (c, java, python, ruby, perl, javascript). Si necesita colaboradores externos para conectarse con sus datos basados ​​en quadtree, obtendrá la máxima flexibilidad con geohash. Si está utilizando python, hay una extensión c preconstruida que ayuda a calcular los valores de geohash con mayor velocidad que quadkey.

    • Caza de insectos . Geohash es ampliamente adoptado en la comunidad de código abierto (por ejemplo, ElasticSearch, MongoDB y otros) implementan índices de geohash como una forma de indexación espacial en sus sistemas. Si te encuentras con algo extraño con tus datos, tus probabilidades de encontrar el problema (y la solución) son mejores con geohash.

    • comunidad . Puede crear URL que conviertan un geohash en un mapa visible mediante un URL que se puede compartir en geohash.org. Por ejemplo, aquí hay una URL para Washington, DC

abeusher
fuente
0

Los quadtrees son más predecibles en que cada nivel abarca un cuadrado, mientras que en la representación de geohash a veces los cuadrados a veces se extienden rectángulos.

Ver: geohash , quadtree

Yavuz Mester
fuente