Skip to content
h3-pg logo

h3-pg PostgreSQL Extension

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

SKILL.md

Full skill instructions

h3-pg PostgreSQL Extension

Extension Architecture

Two extensions:

  • CREATE EXTENSION h3 — Core H3 bindings (indexing, traversal, hierarchy, inspection, <-> operator). No PostGIS dependency.
  • CREATE EXTENSION h3_postgis — PostGIS integration (geometry/​geography casts, @ operator, polygon fill, raster helpers). Requires postgis and optionally postgis_raster.

Postgres-Specific H3 Features

These exist only in h3-pg, not other H3 language bindings.

Direct casts (h3_postgis):

  • h3index::geometry → cell centroid as POINT, SRID 4326
  • h3index::geography → cell centroid as POINT, SRID 4326

Operators:

  • a <-> b — grid distance in cells between two h3index values (h3)
  • geom @ resolution — index geometry/​geography at resolution (h3_postgis)

Operator classes for h3index: BTREE, HASH, BRIN, SP-GIST (h3)

Boundary helpers (h3_postgis):

  • h3_cell_to_boundary_geometry(h3index) → polygon with SRID 4326, splits at antimeridian
  • h3_cell_to_boundary_geography(h3index) → geography polygon, splits at antimeridian

Polygon fill (h3_postgis):

  • h3_polygon_to_cells(geometry, resolution) → SETOF h3index
  • h3_polygon_to_cells(geography, resolution) → SETOF h3index

Raster integration (h3_postgis, requires postgis_raster):

  • h3_raster_summary(raster, resolution, [band]) — per-cell stats (count, sum, mean, stddev, min, max)
  • h3_raster_summary_clip(...) — clips raster by cell boundaries
  • h3_raster_summary_centroids(...) — uses cell centroids, avoids pentagon edge cases
  • h3_raster_summary_subpixel(...) — for cells smaller than pixels
  • h3_raster_class_summary*(...) — discrete class counts per cell

Tile helper (h3_postgis):

  • h3_get_resolution_from_tile_zoom(z, [max_h3_resolution=15], [min_h3_resolution], [hex_edge_pixels=44], [tile_size=512]) — returns optimal H3 resolution for XYZ tile zoom level z, targeting hexagons approximately hex_edge_pixels wide on screen

Common Pattern Fixes

PatternDO NOTDO
Get centroidST_Centroid(h3_cell_to_boundary_geometry(h3))h3::geometry
Get boundary with SRIDh3_cell_to_boundary(h3)::geometryh3_cell_to_boundary_geometry(h3)
Distance check (meters)ST_Distance(a.h3::geography, b.h3::geography) <= NST_DWithin(a.h3::geography, b.h3::geography, N)
Grid distance (cells)h3_distance(a, b)a <-> b

Antimeridian gotcha: Cells crossing 180° are split into valid polygons. ST_Centroid of a split polygon may fall outside the cell — use h3::geometry for centroids instead.

Critical v3 → v4 Renames

v3 Name (DO NOT USE)v4 Replacement
h3_geo_to_h3h3_latlng_to_cell
h3_to_geoh3_cell_to_latlng
h3_to_geo_boundaryh3_cell_to_boundary
h3_k_ringh3_grid_disk
h3_k_ring_distancesh3_grid_disk_distances
h3_hex_ringh3_grid_ring_unsafe
h3_lineh3_grid_path_cells
h3_distanceh3_grid_distance
h3_to_parenth3_cell_to_parent
h3_to_childrenh3_cell_to_children
h3_compacth3_compact_cells
h3_uncompacth3_uncompact_cells
h3_polyfillh3_polygon_to_cells
h3_indexes_are_neighborsh3_are_neighbor_cells
h3_hex_areah3_get_hexagon_area_avg
h3_hex_area_km2 / h3_hex_area_m2h3_get_hexagon_area_avg(res, unit)
h3_edge_length_km / h3_edge_length_mh3_get_hexagon_edge_length_avg(res, unit)

Unit parameters (v4): Area and length functions now take a unit text parameter:

  • h3_get_hexagon_area_avg(resolution, [unit = 'km^2']) — use 'km^2' or 'm^2'
  • h3_get_hexagon_edge_length_avg(resolution, [unit = 'km']) — use 'km' or 'm'
  • h3_cell_area(cell, [unit = 'km^2']) — exact area for specific cell
  • h3_edge_length(edge, [unit = 'km']) — exact length for specific edge

Spelling change (v4.2.3+): Prefer h3_latlng_to_cell over h3_lat_lng_to_cell (underscore version deprecated). Same for h3_cell_to_latlng, h3_vertex_to_latlng.

Documentation

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View
angular-developer logo
majiayu000/claude-skill-registry

angular-developer

[Extends frontend-developer] Angular 21 specialist. Use for Angular-specific features: Signals, zoneless change detection, NgRx SignalStore, standalone components, Signal Forms, Angular Aria. Invoke alongside frontend-developer for Angular projects.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View