QUADBIN se construye sobre el esquema de teselas de mapa deslizante (Web-Mercator), de modo que una celda se corresponde directamente con una terna de coordenadas de tesela (x,y,z) y con la cadena quadkey en base 4 que usan los servidores de teselas. Estas conversiones son el puente específico de QUADBIN hacia el ecosistema de teselado, y no tienen contrapartida en una cuadrícula hexagonal ni de cuadriláteros esféricos.
Devolver si un valor es un identificador QUADBIN estructuralmente válido
isValidIndex(quadbin) → boolean
Etiqueta de cabecera y campo de resolución correctos.
SELECT isValidIndex(quadbin '480fffffffffffff'); -- t SELECT isValidIndex(0::bigint::quadbin); -- f
Devolver la celda vecina en la misma resolución en la dirección dada
quadbinCellSibling(quadbin,text) → quadbin
up / down / left / right.
SELECT quadbinCellSibling( quadbinCellSibling(quadbin '48427fffffffffff', 'right'), 'left') = quadbin '48427fffffffffff'; -- t
Emitir la cadena quadkey en base 4 de tesela deslizante de una celda
quadbinCellToQuadkey(quadbin) → text tquadbinCellToQuadkey(tquadbin) → ttext
Un dígito por nivel de zoom, primero el más significativo, correspondiéndose la celda mundial de resolución 0 con la cadena vacía. La forma estática toma un único quadbin, devolviendo la forma temporal el quadkey de cada celda de una trayectoria como un ttext.
SELECT quadbinCellToQuadkey(quadbin '480fffffffffffff'); -- (empty string) SELECT quadbinCellToQuadkey(quadbin '48427fffffffffff'); -- 0213 SELECT quadbinCellToQuadkey(quadbin '48a6227affffffff'); -- 1202021322
Descomponer una celda de vuelta en su terna de coordenadas de tesela, devuelta como un arreglo de enteros que contiene x, después y, después z
quadbinCellToTile(quadbin) → integer[]
Es la inversa del constructor de teselas
SELECT quadbinCellToTile(quadbin '480fffffffffffff');
-- {0,0,0}
SELECT quadbinCellToTile(quadbin '48a6227affffffff');
-- {524,343,10}
Construir una celda a partir de coordenadas de tesela de mapa deslizante: la columna x, la fila y y el zoom z
quadbinTileToCell(integer,integer,integer) → quadbin
SELECT quadbinTileToCell(0, 0, 0) = quadbin '480fffffffffffff'; -- t SELECT quadbinTileToCell(3, 5, 4) = quadbin '48427fffffffffff'; -- t SELECT quadbinTileToCell(524, 343, 10) = quadbin '48a6227affffffff'; -- t