如何使用 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";
}
我正在使用 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";
}