PHP extension that implements H3 library bindings in OOP style
- PHP:
^8.1
- H3 Library:
^3.7.2
<?php
use H3\GeoCoord;
use H3\H3Index;
use function H3\compact as h3_compact;
use function H3\edge_length;
$h3 = new H3Index(0x881196404bfffff);
// or
$h3 = H3Index::fromLong(0x881196404bfffff);
// or
$h3 = H3Index::fromString('881196404bfffff');
// or
$h3 = H3Index::fromGeo(geo: new GeoCoord(lat: 50.00572553034654, lon: 36.229191466601634), res: 8);
$resolution = $h3->getResolution(); // 8
$kRing = $h3->kRing(k: 3); // H3Index[]
$kRingCount = count($kRing); // 37
$compacted = h3_compact($kRing); // H3Index[]
$compactedCount = count($compacted); // 19
$parentString = $h3->toParent(res: 5)->toString(); // "85119643fffffff"
$edgeLength = edge_length(res: 8, unit: H3_LENGTH_UNIT_M); // 461.3546837
git clone https://github.com/uber/h3.git
cd h3
git checkout v3.7.2
cmake -DBUILD_SHARED_LIBS=ON .
make -j "$(nproc)"
sudo make install
git clone https://github.com/abler98/h3-php.git
cd h3-php
phpize
./configure
make
sudo make install
C |
PHP |
geoToH3() |
H3\H3Index::fromGeo() |
h3ToGeo() |
H3\H3Index::toGeo() |
h3ToGeoBoundary() |
H3\H3Index::toGeoBoundary() |
C |
PHP |
h3GetResolution() |
H3\H3Index::getResolution() |
h3GetBaseCell() |
H3\H3Index::getBaseCell() |
stringToH3() |
H3\H3Index::fromString() |
h3ToString() |
H3\H3Index::toString() |
h3IsValid() |
H3\H3Index::isValid() |
h3IsResClassIII() |
H3\H3Index::isResClassIII() |
h3IsPentagon() |
H3\H3Index::isPentagon() |
h3GetFaces() |
H3\H3Index::getFaces() |
maxFaceCount() |
- |
C |
PHP |
kRing() |
H3\H3Index::kRing() |
maxKringSize() |
- |
kRingDistances() |
H3\H3Index::kRingDistances() |
hexRange() |
H3\H3Index::hexRange() |
hexRangeDistances() |
H3\H3Index::hexRangeDistances() |
hexRanges() |
H3\H3Index::hexRanges() |
hexRing() |
H3\H3Index::hexRing() |
h3Line() |
H3\line() H3\H3Index::getLineTo() |
h3LineSize() |
- |
h3Distance() |
H3\distance() H3\H3Index::getDistanceTo() |
experimentalH3ToLocalIj() |
H3\experimental_h3_to_local_ij |
experimentalLocalIjToH3() |
H3\experimental_local_ij_to_h3 |
C |
PHP |
h3ToParent() |
H3\H3Index::toParent() |
h3ToChildren() |
H3\H3Index::toChildren() |
maxH3ToChildrenSize() |
- |
h3ToCenterChild() |
H3\H3Index::toCenterChild() |
compact() |
H3\compact() |
uncompact() |
H3\uncompact() |
maxUncompactSize() |
- |
C |
PHP |
polyfill() |
H3\polyfill() |
maxPolyfillSize() |
- |
h3SetToLinkedGeo() |
H3\h3_set_to_multi_polygon() |
destroyLinkedPolygon() |
- |
C |
PHP |
h3IndexesAreNeighbors() |
H3\indexes_are_neighbors H3\H3Index::isNeighborTo() |
getH3UnidirectionalEdge() |
H3\H3Index::getUnidirectionalEdge() |
h3UnidirectionalEdgeIsValid() |
H3\UniEdge::isValid() |
getOriginH3IndexFromUnidirectionalEdge() |
H3\UniEdge::getOrigin() |
getDestinationH3IndexFromUnidirectionalEdge() |
H3\UniEdge::getDestination() |
getH3IndexesFromUnidirectionalEdge() |
H3\UniEdge::getIndexes() |
getH3UnidirectionalEdgesFromHexagon() |
H3\H3Index::getUnidirectionalEdges() |
getH3UnidirectionalEdgeBoundary() |
H3\UniEdge::getBoundary() |
C |
PHP |
degsToRads() |
H3\degs_to_rads() |
radsToDegs() |
H3\rads_to_degs() |
hexAreaKm2() |
H3\hex_area() |
hexAreaM2() |
H3\hex_area() |
cellAreaM2() |
H3\H3Index::getCellArea() |
cellAreaRads2() |
H3\H3Index::getCellArea() |
edgeLengthKm() |
H3\edge_length() |
edgeLengthM() |
H3\edge_length() |
exactEdgeLengthKm() |
H3\UniEdge::getLength() |
exactEdgeLengthM() |
H3\UniEdge::getLength() |
exactEdgeLengthRads() |
H3\UniEdge::getLength() |
numHexagons() |
H3\num_hexagons() |
getRes0Indexes() |
H3\get_res0_indexes() |
res0IndexCount() |
- |
getPentagonIndexes() |
H3\get_pentagon_indexes() |
pentagonIndexCount() |
- |
pointDistKm() |
H3\point_dist() |
pointDistM() |
H3\point_dist() |
pointDistRads() |
H3\point_dist() |
All contents of this package are licensed under the MIT license.