El servicio de Place Photo (nuevo) es una API de solo lectura que te permite agregar contenido fotográfico de alta calidad a tu aplicación. El servicio de Place Photo te proporciona acceso a las millones de fotos almacenadas en la base de datos de Places.
Cuando obtienes información sobre lugares mediante una solicitud de Place Details, Nearby Search o Text Search, también puedes solicitar recursos de fotos para el contenido fotográfico correspondiente. Con el servicio de Fotos, puedes tener acceso a las fotos de referencia y cambiar el tamaño de la imagen al tamaño óptimo para tu aplicación.
El Explorador de APIs te permite realizar solicitudes en vivo para que te familiarices con la API y sus opciones:
PruébaloSolicitudes de fotos de lugares
Una solicitud de fotos de lugares es una solicitud HTTP GET a una URL con el siguiente formato:https://places.googleapis.com/v1/NAME/media?key=API_KEY&PARAMETERS
donde se requieren los siguientes parámetros:
- NAME contiene el nombre del recurso de la foto.
- API_KEY contiene la clave de API.
- PARAMETERS contiene el parámetro
maxHeightPx
, el parámetromaxWidthPx
o ambos.
A continuación, se describe la lista completa de los parámetros obligatorios y opcionales.
Parámetros obligatorios
Nombre de la foto
Un identificador de cadenas que identifica de forma exclusiva una foto. Los nombres de las fotos se muestran a partir de una solicitud de Place Details (New), Nearby Search (New) o Text Search (New) en la propiedad name
de cada elemento del array photos[]
.
Para ver un ejemplo, consulta Cómo obtener el nombre de una foto.
maxHeightPx y maxWidthPx
Especifica la altura y el ancho máximos deseados, en píxeles, de la imagen. Si la imagen es más pequeña que los valores especificados, se mostrará la imagen original. Si la imagen es más grande en dimensión, se ajustará en escala para coincidir con la más pequeña de las dos dimensiones, restringida a su relación de aspecto original. Las propiedades maxheight y maxwidth aceptan un número entero entre 1 y 4800.
Debes especificar maxHeightPx
, maxWidthPx
o ambos.
Parámetros opcionales
skipHttpRedirect
Si es false
(predeterminado), realiza un redireccionamiento HTTP a la imagen para mostrarla.
Si es true
, omite el redireccionamiento y muestra una respuesta JSON que contenga los detalles de la imagen.
Por ejemplo:
{ "name": "places/ChIJj61dQgK6j4AR4GeTYWZsKWw/photos/Aaw_FcKly0DEv3EWmDJyHiEqXIP5mowOc99lN1GzBun6KHH52AZ5fFA/media", "photoUri": "https://lh3.googleusercontent.com/a-/AD_cFT-b=s100-p-k-no-mo" }
Esta opción se ignora para las solicitudes que no son HTTP.
Cómo obtener el nombre de una foto
Todas las solicitudes del servicio de Place Photo deben incluir un nombre de recurso de foto que se muestra en la respuesta a una solicitud de Nearby Search, Text Search o Place Details. La respuesta a estas solicitudes contiene un array photos[]
si el lugar tiene contenido fotográfico relacionado.
Cada elemento de photo[]
contiene los siguientes campos:
name
: Es una cadena que contiene el nombre del recurso de la foto cuando realizas una solicitud de foto. Esta cadena tiene el siguiente formato:places/PLACE_ID/photos/PHOTO_RESOURCE
heightPx
: Es la altura máxima de la imagen, en píxeles.widthPx
: Es el ancho máximo de la imagen, en píxeles.authorAttributions[]
: Todas las atribuciones requeridas Este campo siempre está presente, pero puede estar vacío.
Las fotos que muestra el servicio Photos provienen de una variedad de fuentes, incluidas las fotos proporcionadas por los propietarios de las empresas y los aportes de los usuarios. En la mayoría de los casos, estas fotos se pueden utilizar sin atribución; de lo contrario, incluirán la atribución requerida como parte de la imagen. Sin embargo, si el elemento photo
que se muestra incluye un valor en el campo authorAttributions
, deberás incluir la atribución adicional en tu aplicación en cualquier lugar donde muestres la imagen.
En el siguiente ejemplo, se muestra una solicitud de Place Details que incluye photos
en la máscara de campo para que la respuesta incluya el array 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/ChIJ2fzCmcW7j4AR2JzfXBBoh6EA continuación, se muestra un ejemplo de un array
photos[]
en la respuesta.
... "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" } ] }, ...
Cómo solicitar una foto de un lugar
En la siguiente solicitud de ejemplo, se muestra una imagen con su recurso name
, y se cambia su tamaño para que tenga, como máximo, 400 píxeles de alto y ancho:
https://places.googleapis.com/v1/places/ChIJ2fzCmcW7j4AR2JzfXBBoh6E/photos/AUacShh3_Dd8yvV2JZMtNjjbbSbFhSv-0VmUN-uasQ2Oj00XB63irPTks0-A_1rMNfdTunoOVZfVOExRRBNrupUf8TY4Kw5iQNQgf2rwcaM8hXNQg7KDyvMR5B-HzoCE1mwy2ba9yxvmtiJrdV-xBgO8c5iJL65BCd0slyI1/media?maxHeightPx=400&maxWidthPx=400&key=API_KEY
La respuesta de una solicitud de fotos de sitios exitosa es una imagen. El tipo de imagen depende del tipo de foto enviada originalmente.
Si tu solicitud supera tu cuota disponible, el servidor muestra un estado HTTP 403 y muestra la imagen pública que figura a continuación para indicar que se superó la cuota:
Si el servidor no puede comprender tu solicitud, muestra un estado HTTP 400, que indica una solicitud no válida. Entre los motivos más comunes por los que se genera una solicitud no válida, se incluyen los siguientes:
- El nombre de la foto enviada no se especificó correctamente.
- La solicitud no incluyó el parámetro
maxHeightPx
nimaxWidthPx
. - El valor del parámetro
maxHeightPx
omaxWidthtPx
se estableció ennull
. - Venció tu
name
. Si vencename
, realiza una solicitud a Place Details (nuevo), Nearby Search (nuevo) o Text Search (nuevo) para obtener unname
nuevo.
Pruébalo
El Explorador de APIs te permite realizar solicitudes de muestra para que te familiarices con la API y sus opciones.
Para realizar una solicitud, sigue estos pasos:
- Selecciona el ícono de la API, , en el lado derecho de la página.
- Establece el parámetro
name
en lo siguiente:places/PLACE_ID/photos/PHOTO_RESOURCE/media
- Establece
skipHttpRedirect
entrue
para que la solicitud devuelva una respuesta JSON. De forma predeterminada, la solicitud muestra la imagen, que el Explorador de API no puede mostrar. - Selecciona el botón Ejecutar. En la ventana emergente, elige la cuenta que deseas usar para realizar la solicitud.
En el panel del Explorador de API, selecciona el ícono de expansión, , para expandir la ventana del Explorador de API.