1. Go to this page and download the library: Download foysal50x/h3-php library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
foysal50x / h3-php example snippets
use Foysal50x\H3\H3;
$h3 = new H3();
// Convert coordinates to H3 cell
$cell = $h3->latLngToCell(37.7749, -122.4194, 9);
echo "H3 Index: " . $h3->h3ToString($cell) . "\n";
// Get cell center coordinates
$coords = $h3->cellToLatLng($cell);
echo "Center: {$coords['lat']}, {$coords['lng']}\n";
// Get neighboring cells
$neighbors = $h3->gridDisk($cell, 1);
echo "Neighbors: " . count($neighbors) . "\n";
// Convert lat/lng to H3 cell
$cell = $h3->latLngToCell(float $lat, float $lng, int $resolution): int
// Convert H3 cell to lat/lng center
$coords = $h3->cellToLatLng(int $cell): array{lat: float, lng: float}
// Get cell boundary vertices
$boundary = $h3->cellToBoundary(int $cell): array
$h3->getResolution(int $cell): int
$h3->getBaseCellNumber(int $cell): int
$h3->h3ToString(int $cell): string
$h3->stringToH3(string $str): int
$h3->isValidCell(int $cell): bool
$h3->isResClassIII(int $cell): bool
$h3->isPentagon(int $cell): bool
// Get all cells within k distance (filled disk)
$cells = $h3->gridDisk(int $origin, int $k): array
// Get cells with their distances
$results = $h3->gridDiskDistances(int $origin, int $k): array
// Get cells in a hollow ring at exactly k distance
$cells = $h3->gridRing(int $origin, int $k): array
// Get grid distance between two cells
$distance = $h3->gridDistance(int $origin, int $destination): int
// Get path between two cells
$path = $h3->gridPathCells(int $start, int $end): array
// Get parent cell at coarser resolution
$parent = $h3->cellToParent(int $cell, int $parentRes): int
// Get all children at finer resolution
$children = $h3->cellToChildren(int $cell, int $childRes): array
// Get center child at finer resolution
$child = $h3->cellToCenterChild(int $cell, int $childRes): int
// Compact cells to minimal representation
$compacted = $h3->compactCells(array $cells): array
// Uncompact cells to specific resolution
$cells = $h3->uncompactCells(array $cells, int $res): array
$h3->areNeighborCells(int $origin, int $destination): bool
$h3->cellsToDirectedEdge(int $origin, int $destination): int
$h3->isValidDirectedEdge(int $edge): bool
$h3->getDirectedEdgeOrigin(int $edge): int
$h3->getDirectedEdgeDestination(int $edge): int
$h3->directedEdgeToCells(int $edge): array{origin: int, destination: int}
$h3->reverseDirectedEdge(int $edge): int
$h3->originToDirectedEdges(int $origin): array
$h3->directedEdgeToBoundary(int $edge): array
$h3->cellToVertex(int $cell, int $vertexNum): int
$h3->cellToVertexes(int $cell): array
$h3->vertexToLatLng(int $vertex): array{lat: float, lng: float}
$h3->isValidVertex(int $vertex): bool
// Average hexagon area at resolution
$h3->getHexagonAreaAvgKm2(int $res): float
$h3->getHexagonAreaAvgM2(int $res): float
// Exact cell area
$h3->cellAreaKm2(int $cell): float
$h3->cellAreaM2(int $cell): float
$h3->cellAreaRads2(int $cell): float
// Average edge length at resolution
$h3->getHexagonEdgeLengthAvgKm(int $res): float
$h3->getHexagonEdgeLengthAvgM(int $res): float
// Exact edge length
$h3->edgeLengthKm(int $edge): float
$h3->edgeLengthM(int $edge): float
$h3->edgeLengthRads(int $edge): float
// Great circle distance between coordinates
$h3->greatCircleDistanceKm(float $lat1, float $lng1, float $lat2, float $lng2): float
$h3->greatCircleDistanceM(float $lat1, float $lng1, float $lat2, float $lng2): float
// Default max k value is 500 (results in ~751,501 cells)
$h3->gridDisk($cell, 1000); // Throws H3Exception
// Adjust the limit if needed for your use case
H3::setMaxGridK(1000);
$h3->gridDisk($cell, 1000); // Now works
// Check current limit
$maxK = H3::getMaxGridK();
try {
$h3->cellToChildren($cell, 3);
} catch (H3Exception $e) {
// "Failed to get children cells: Resolution mismatch (code: 12)"
echo $e->getMessage();
echo $e->getCode(); // H3 error code
}
bash
composer
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.