Saat pertama coba selalu gagal API key tidak sesuai
ini mungkin works
<?php
$apiKey = 'ini-api-key-tanpa-domain-restriction'; // API key tanpa domain restriction
// Define geometry (polygon untuk area Trenggalek)
$geometry = [
"type" => "Polygon",
"coordinates" => [[
[103.19732666015625, 0.5537709801264608],
[103.24882507324219, 0.5647567848663363],
[103.21277618408203, 0.5932511181408705],
[103.19732666015625, 0.5537709801264608]
]]
];
// Step 1: Create geostore dari geometry
$geostoreUrl = 'https://data-api.globalforestwatch.org/geostore';
$geostorePayload = json_encode(["geojson" => $geometry]);
$ch = curl_init($geostoreUrl);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTPHEADER => [
'x-api-key: ' . $apiKey,
'Content-Type: application/json',
'Content-Length: ' . strlen($geostorePayload)
],
CURLOPT_POSTFIELDS => $geostorePayload,
]);
$geostoreResponse = curl_exec($ch);
$geostoreHttpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$geostoreResult = json_decode($geostoreResponse, true);
if (!isset($geostoreResult['data']['id'])) {
die("Gagal membuat geostore. HTTP: $geostoreHttpCode\n");
}
$geostoreId = $geostoreResult['data']['id'];
echo "Geostore ID: $geostoreId\n";
// Step 2: Query dataset dengan geostore dan geometry
$queryUrl = "https://data-api.globalforestwatch.org/dataset/umd_tree_cover_loss/v1.12/query/json?geostore=$geostoreId";
$queryPayload = json_encode([
"sql" => "SELECT SUM(area__ha) as total_area FROM results WHERE umd_tree_cover_loss__year = 2019",
"geometry" => $geometry
]);
$ch = curl_init($queryUrl);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTPHEADER => [
'x-api-key: ' . $apiKey,
'Content-Type: application/json',
'Content-Length: ' . strlen($queryPayload)
],
CURLOPT_POSTFIELDS => $queryPayload,
]);
$queryResponse = curl_exec($ch);
$queryHttpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo "Query HTTP: $queryHttpCode\n";
$result = json_decode($queryResponse, true);
echo "<pre>";
print_r($result);
echo "</pre>";
ini dokumentasi yang bagus:
https://developer.openepi.io/how-tos/getting-started-using-global-forest-watch-data-api

Top comments (0)