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. La entrada del tipo quadbin provoca un error ante cualquier otro valor, por lo que todo valor del tipo es un índice válido, mientras que isValidCell responde si el índice es una celda de datos: el índice 504b5fffffffffff lleva el modo 2.
SELECT isValidIndex(quadbin '480fffffffffffff'); -- t SELECT isValidIndex(quadbin '504b5fffffffffff'); -- t
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