Devolver la celda temporal en la resolución dada que contiene cada punto de un punto temporal geodésico o plano
th3index(tpoint,integer) → th3index tquadbin(tgeompoint,integer) → tquadbin ts2cell(tgeogpoint,integer) → ts2cell
El SRID debe ser 4326 para las sobrecargas de tgeompoint. El constructor sobre un punto temporal se presenta para todas las cuadrículas: H3 toma un punto geodésico o plano, QUADBIN uno plano y S2 uno geodésico, ya que una arista de celda S2 es un arco de círculo máximo.
Una trayectoria que no indica nada entre sus instantes, discreta o escalonada, produce las celdas que los contienen y conserva su interpolación; una que se desplaza entre ellos produce todas las celdas que atraviesa por el camino, ya que el segmento se recorre celda a celda en lugar de muestrearse. El segmento se recorre a lo largo del camino que sigue su punto: el círculo máximo de un tgeogpoint, de modo que una trayectoria que cruza el antimeridiano o pasa cerca de un polo produce las celdas de su ruta más corta, y la recta en longitud y latitud de un tgeompoint. Una tesela QUADBIN contiene sus bordes oeste y norte, de modo que un camino que pasa por el punto donde se encuentran cuatro teselas pasa por la tesela al este del meridiano y al sur del paralelo que se cruzan allí. Cada instante del resultado marca el momento en que la trayectoria entró en esa celda, y la última celda se mantiene hasta el final de la trayectoria, de modo que el resultado abarca su período. Con un límite superior exclusivo, una celda que la trayectoria alcanza solo en su final, sin mantenerla ningún tiempo, no forma parte del resultado.
SELECT getResolution(th3index(tgeogpoint 'POINT(-73.96 40.78)@2001-01-01', 9)); -- 9@2001-01-01 SELECT getResolution(th3index(tgeompoint 'SRID=4326;POINT(-73.96 40.78)@2001-01-01', 9)); -- 9@2001-01-01 SELECT getResolution(tquadbin(tgeompoint 'SRID=4326;POINT(-73.96 40.78)@2001-01-01', 9)); -- 9@2001-01-01 SELECT getResolution(ts2cell(tgeogpoint 'POINT(-73.96 40.78)@2001-01-01', 9)); -- 9@2001-01-01
Devolver el centroide geodésico temporal de cada celda de una trayectoria
cellToPoint(cell) → geometry cellToPoint(tcell) → tgeogpoint tgeompoint(tcell) → tgeompoint
La forma tgeompoint responde el mismo centroide como un punto plano en SRID 4326, y H3 es la única cuadrícula que publica ambas formas. La operación se llama cellToPoint para todas las cuadrículas, siendo la ranura cell_to_point del descriptor lo que lo fija.
SELECT ST_AsText(cellToPoint(h3index '871fa44a8ffffff'), 6); -- POINT(4.297401 50.8043) SELECT asText(cellToPoint(th3index '871fa44a8ffffff@2001-01-01'), 6); -- POINT(4.297401 50.8043)@2001-01-01 SELECT asText(tgeompoint(th3index '871fa44a8ffffff@2001-01-01'), 6); -- POINT(4.297401 50.8043)@2001-01-01 SELECT ST_AsText(cellToPoint(quadbin '48a6227affffffff'), 6); -- POINT(4.394531 50.847573) SELECT asText(cellToPoint(tquadbin '48a6227affffffff@2001-01-01'), 6); -- POINT(4.394531 50.847573)@2001-01-01 SELECT ST_AsText(cellToPoint(s2cell '47c3c'), 6); -- POINT(4.222019 50.936164) SELECT asText(cellToPoint(ts2cell '47c3c@2001-01-01'), 6); -- POINT(4.222019 50.936164)@2001-01-01
Devolver la frontera poligonal temporal de cada celda de una trayectoria, como una geografía temporal
cellToBoundary(cell) → geometry cellToBoundary(tcell) → tgeography
Devolver la frontera poligonal de una celda en el SRID 4326. La forma estática toma una única cell; la forma temporal devuelve la frontera de cada celda de una trayectoria. El anillo se cierra sobre su primer vértice, de modo que un hexágono H3 lleva siete puntos y un cuadrado QUADBIN o un cuadrilátero esférico S2 cinco.
SELECT ST_NPoints(cellToBoundary(h3index '871fa44a8ffffff')); -- 7 SELECT ST_GeometryType(getValue(cellToBoundary(th3index '871fa44a8ffffff@2001-01-01'))::geometry); -- ST_Polygon SELECT ST_NPoints(getValue(cellToBoundary(th3index '871fa44a8ffffff@2001-01-01'))::geometry); -- 7 SELECT ST_GeometryType(getValue(cellToBoundary(tquadbin '48a6227affffffff@2001-01-01'))::geometry); -- ST_Polygon SELECT ST_NPoints(getValue(cellToBoundary(tquadbin '48a6227affffffff@2001-01-01'))::geometry); -- 5 SELECT ST_GeometryType(getValue(cellToBoundary(ts2cell '47c3c@2001-01-01'))::geometry); -- ST_Polygon SELECT ST_NPoints(getValue(cellToBoundary(ts2cell '47c3c@2001-01-01'))::geometry); -- 5