Region functions
These functions convert H3 indexes to and from polygonal areas.
polyfill
- C
- Python
- Java
- JavaScript (Live)
void polyfill(const GeoPolygon* geoPolygon, int res, H3Index* out);
h3.polyfill(polygons, res, geo_json_conformant=False)
List<Long> polyfill(List<GeoCoord> points, List<List<GeoCoord>> holes, int res);
List<String> polyfillAddress(List<GeoCoord> points, List<List<GeoCoord>> holes, int res);
h3.polyfill(polygon, res, isGeoJson)
polyfill takes a given GeoJSON-like data structure and preallocated, zeroed memory, and fills it with the hexagons that are contained by the GeoJSON-like data structure.
Containment is determined by the cells' centroids. A partitioning using the GeoJSON-like data structure, where polygons cover an area without overlap, will result in a partitioning in the H3 grid, where cells cover the same area without overlap.
maxPolyfillSize
- C
- Python
- Java
- JavaScript (Live)
int maxPolyfillSize(const GeoPolygon* geoPolygon, int res);
This function exists for memory management and is not exposed.
This function exists for memory management and is not exposed.
This function exists for memory management and is not exposed.
maxPolyfillSize returns the number of hexagons to allocate space for when performing a polyfill on the given GeoJSON-like data structure.
h3SetToLinkedGeo / h3SetToMultiPolygon
- C
- Python
- Java
- JavaScript (Live)
void h3SetToLinkedGeo(const H3Index* h3Set, const int numHexes, LinkedGeoPolygon* out);
h3.h3_set_to_multi_polygon(hexes, geo_json=False)
List<List<List<GeoCoord>>> h3SetToMultiPolygon(Collection<Long> h3, boolean geoJson);
List<List<List<GeoCoord>>> h3AddressSetToMultiPolygon(Collection<String> h3Addresses, boolean geoJson);
h3.h3SetToMultiPolygon(polygon, geoJson)
Create a LinkedGeoPolygon describing the outline(s) of a set of hexagons. Polygon outlines will follow GeoJSON MultiPolygon order: Each polygon will have one outer loop, which is first in the list, followed by any holes.
It is the responsibility of the caller to call destroyLinkedPolygon on the populated linked geo structure, or the memory for that structure will not be freed.
It is expected that all hexagons in the set have the same resolution and that the set contains no duplicates. Behavior is undefined if duplicates or multiple resolutions are present, and the algorithm may produce unexpected or invalid output.
destroyLinkedPolygon
- C
- Python
- Java
- JavaScript (Live)
void destroyLinkedPolygon(LinkedGeoPolygon* polygon);
This function exists for memory management and is not exposed.
This function exists for memory management and is not exposed.
This function exists for memory management and is not exposed.
Free all allocated memory for a linked geo structure. The caller is responsible for freeing memory allocated to the input polygon struct.