O serviço Place Photo (New) é uma API somente leitura que permite adicionar conteúdo fotográfico de alta qualidade ao seu aplicativo. O serviço Place Photo permite acessar milhões de fotos armazenadas no banco de dados do Places.
Ao receber informações de local usando uma solicitação de Place Details, Nearby Search ou Text Search, você também pode solicitar recursos de fotos para conteúdo fotográfico relevante. Usando o serviço Photo, é possível acessar as fotos referenciadas e redimensionar a imagem de acordo com o tamanho ideal para o aplicativo.
O API Explorer permite fazer solicitações em tempo real para que você se familiarize com a API e as opções dela:
Faça um testeSolicitações de Place Photos
Uma solicitação de Place Photo é uma solicitação HTTP GET para um URL no formato:https://places.googleapis.com/v1/NAME/media?key=API_KEY&PARAMETERS
Em que os seguintes parâmetros são necessários:
- NAME contém o nome do recurso da foto.
- API_KEY contém a chave de API.
- PARAMETERS contém o parâmetro
maxHeightPx
,maxWidthPx
ou ambos.
Confira abaixo a lista completa de parâmetros obrigatórios e opcionais.
Parâmetros obrigatórios
Nome da foto
Um identificador de string que identifica uma foto de forma exclusiva. Os nomes das fotos são retornados de uma solicitação de Place Details (New), Nearby Search (New) ou Text Search (New) na propriedade name
de cada elemento da matriz photos[]
.
Para conferir um exemplo, consulte Receber o nome de uma foto.
maxHeightPx e maxWidthPx
Especifica a altura e a largura máximas desejadas, em pixels, da imagem. Se a imagem for menor que os valores especificados, a imagem original será retornada. Se a imagem for maior em uma das dimensões, ela será redimensionada para corresponder à menor das duas dimensões, restrita à taxa de proporção original. As propriedades maxheight e maxwidth aceitam um número inteiro entre 1 e 4800.
Especifique maxHeightPx
, maxWidthPx
ou ambos.
Parâmetros opcionais
skipHttpRedirect
Se false
(padrão), faça um redirecionamento HTTP para a imagem a fim de retorná-la.
Se true
, pule o redirecionamento e retorne uma resposta JSON com os detalhes da imagem.
Exemplo:
{ "name": "places/ChIJj61dQgK6j4AR4GeTYWZsKWw/photos/Aaw_FcKly0DEv3EWmDJyHiEqXIP5mowOc99lN1GzBun6KHH52AZ5fFA/media", "photoUri": "https://lh3.googleusercontent.com/a-/AD_cFT-b=s100-p-k-no-mo" }
Essa opção é ignorada nas solicitações que não são HTTP.
Receber o nome de uma foto
Todas as solicitações para o serviço Place Photo precisam incluir um
nome de recurso de foto, retornado na resposta a uma solicitação de Nearby Search, Text Search ou
Place Details. A resposta a essas solicitações contém uma matriz photos[]
se o
local tiver conteúdo fotográfico relacionado.
Cada elemento de photo[]
contém os seguintes campos:
name
: uma string que contém o nome do recurso da foto quando você faz uma solicitação de Photo. Essa string está no formato:places/PLACE_ID/photos/PHOTO_RESOURCE
heightPx
: a altura máxima da imagem em pixels.widthPx
: a largura máxima da imagem em pixels.authorAttributions[]
: todas as atribuições necessárias. Esse campo está sempre presente, mas pode estar vazio.
As fotos retornadas pelo serviço Photo têm origem em vários locais,
inclusive de proprietários de empresas e imagens enviadas pelos usuários. Na maioria dos casos, essas
fotos podem ser usadas sem atribuição ou a atribuição necessária
será incluída como parte da imagem. No entanto, se o elemento photo
retornado
incluir um valor no campo authorAttributions
, será necessário incluir a
atribuição adicional no aplicativo sempre que você exibir a imagem.
O exemplo a seguir mostra uma solicitação de detalhes do lugar que inclui photos
na máscara de campo para que a resposta inclua a matriz photos[]
:
curl -X GET \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: id,displayName,photos" \ https://places.googleapis.com/v1/places/ChIJ2fzCmcW7j4AR2JzfXBBoh6E
photos[]
na resposta é mostrado abaixo.
... "photos" : [ { "name": "places/ChIJ2fzCmcW7j4AR2JzfXBBoh6E/photos/AUacShh3_Dd8yvV2JZMtNjjbbSbFhSv-0VmUN-uasQ2Oj00XB63irPTks0-A_1rMNfdTunoOVZfVOExRRBNrupUf8TY4Kw5iQNQgf2rwcaM8hXNQg7KDyvMR5B-HzoCE1mwy2ba9yxvmtiJrdV-xBgO8c5iJL65BCd0slyI1", "widthPx": 6000, "heightPx": 4000, "authorAttributions": [ { "displayName": "John Smith", "uri": "//maps.google.com/maps/contrib/101563", "photoUri": "//lh3.googleusercontent.com/a-/AD_cFT-b=s100-p-k-no-mo" } ] }, ...
Solicitar uma foto de um lugar
O exemplo de solicitação abaixo retorna uma imagem usando o recurso name
, redimensionando-a para
que ela tenha no máximo 400 pixels de altura e largura:
https://places.googleapis.com/v1/places/ChIJ2fzCmcW7j4AR2JzfXBBoh6E/photos/AUacShh3_Dd8yvV2JZMtNjjbbSbFhSv-0VmUN-uasQ2Oj00XB63irPTks0-A_1rMNfdTunoOVZfVOExRRBNrupUf8TY4Kw5iQNQgf2rwcaM8hXNQg7KDyvMR5B-HzoCE1mwy2ba9yxvmtiJrdV-xBgO8c5iJL65BCd0slyI1/media?maxHeightPx=400&maxWidthPx=400&key=API_KEY
A resposta para uma solicitação bem-sucedida do Place Photo é uma imagem. O tipo da imagem depende do tipo da foto originalmente enviada.
Se a solicitação exceder a cota disponível, o servidor retornará um status HTTP 403 e exibirá a imagem abaixo para indicar que a cota foi excedida:
Se o servidor não entender a solicitação, ele vai retornar um status HTTP 400, que indica uma solicitação inválida. Os motivos mais comuns para uma solicitação inválida incluem:
- O nome da foto enviada não foi especificado corretamente.
- A solicitação não incluiu o parâmetro
maxHeightPx
oumaxWidthPx
. - O valor do parâmetro
maxHeightPx
oumaxWidthtPx
foi definido comonull
. - O
name
expirou. Se oname
expirar, faça uma solicitação para Place Details (novo), Nearby Search (novo) ou Text Search (novo) para receber um novoname
.
Confira!
O API Explorer permite fazer solicitações de amostra para que você se familiarize com a API e as opções dela.
Para fazer uma solicitação:
- Selecione o ícone da API, , no lado direito da página.
- Defina o parâmetro
name
como:places/PLACE_ID/photos/PHOTO_RESOURCE/media
- Defina
skipHttpRedirect
comotrue
para que a solicitação retorne uma resposta JSON. Por padrão, a solicitação retorna a imagem, que não pode ser exibida pelo API Explorer. - Selecione o botão Executar. No pop-up, escolha a conta que você quer usar para fazer a solicitação.
No painel do API Explorer, selecione o ícone de expansão, , para abrir a janela do API Explorer.