如何使用 guzzle 从街景图像元数据中检索响应状态

How to retrieve respons status from Street View Image Metadata using guzzle

我正在使用 guzzle 从我的 laravel 应用程序调用 街景图像 API。我希望能够从我的请求中检索状态代码,如 docs 末尾所述。

我特别想赶上:

{
    "status" : "ZERO_RESULTS"
}

这是来自我的控制器的 Guzzle 代码(我在命名空间中正确地包含了 guzzle)。 get 调用中的地址正在生成 "Sorry we have no imagery here":

$client = new Client();
        $res = $client->get('https://maps.googleapis.com/maps/api/streetview?size=800x600&location=78.648401,14.194336&key=my-API-key&fov=120&heading=90');
        $res->getStatusCode();
        dd($res->getBody());

但是。正如您在图片中看到的,元数据是空的。当我添加 $res->getStatusCode(); 它给了我一个 200.

如何捕捉 ZERO_RESULT?

先生,请注意有两个不同的端点;一种用于元数据,一种用于图像检索。您只使用了图像检索。这是检查给定坐标是否具有图像的示例方法

private function coordinateHasImage($coordinate)
{
    $client = new Client();
    $res = $client->get(  'https://maps.googleapis.com/maps/api/streetview/metadata?size=600x300&location=' . $coordinate . '&fov=90&heading=235&pitch=10&key=YOUR_KEY_HERE');
    return json_decode($res->getBody()->getContents())->status == "OK";
}