地点照片服务是 Places API 的一部分,它是一种只读 API,可让您向应用中添加高品质照片内容。借助地点照片服务,您可以访问存储在地点数据库中的数百万张照片。当您使用“地点详情”请求获取地点信息时,系统将返回相关照片内容的照片引用。“查找地点”“附近搜索”和“文本搜索”请求也会为每个地点返回一个照片引用(如果相关)。使用照片服务,您可以访问所引用的照片,并根据应用将图片调整为最适合的大小。
地点照片请求
地点照片请求是一个 HTTP URL,其格式如下:
https://maps.googleapis.com/maps/api/place/photo?parameters
您需要使用某些参数,才能发起搜索请求。根据网址的标准,所有参数均使用和号字符 (&
) 分隔。下面枚举了各个参数及其可能的值。
Required parameters
photo_reference
A string identifier that uniquely identifies a photo. Photo references are returned from either a Place Search or Place Details request.
maxheight or maxwidth
maxheight
specifies the maximum desired height, in pixels, of the image. If the image is smaller than the values specified, the original image will be returned. If the image is larger in either dimension, it will be scaled to match the smaller of the two dimensions, restricted to its original aspect ratio.maxwidth
specifies the maximum desired width, in pixels, of the image. If the image is smaller than the values specified, the original image will be returned. If the image is larger in either dimension, it will be scaled to match the smaller of the two dimensions, restricted to its original aspect ratio.Both the
maxheight
andmaxwidth
properties accept an integer between1
and1600
.You must specify either
maxheight
, ormaxwidth
, or both.
照片引用
向地点照片服务发出的所有请求都必须包含 photo_reference
,该 ID 会在对“查找地点”“附近搜索”“文本搜索”或“地点详情”请求的响应中返回。如果地点具有相关照片内容,对这些请求的响应将包含 photos[]
字段。
注意:返回的照片数量因请求而异。
- “查找地点”“附近搜索”或“文本搜索”请求最多会在数组中返回一个
photo
元素。 - “地点详情”请求最多会返回十个
photo
元素。
每个 photo
元素将包含以下字段:
photo_reference
- 执行照片请求时用于标识照片的字符串。height
- 图片的最大高度。width
- 图片的最大宽度。html_attributions[]
- 包含任何必需的提供方说明。此字段将始终存在,但可能为空。
照片服务返回的照片来自多个地点,包括商家所有者和用户贡献的照片。在大多数情况下,使用这些照片时可以不包含提供方说明,或者可以在图片中包含必要的提供方说明。但是,如果返回的 photo
元素在 html_attributions
字段中包含值,则无论您在何处显示该图片,都必须在应用中添加额外的提供方说明。
下面显示了一个 photos[]
数组的示例。
...
"photos" : [
{
"html_attributions" : [],
"height" : 853,
"width" : 1280,
"photo_reference" : "AUacShh3_Dd8yvV2JZMtNjjbbSbFhSv-0VmUN-uasQ2Oj00XB63irPTks0-A_1rMNfdTunoOVZfVOExRRBNrupUf8TY4Kw5iQNQgf2rwcaM8hXNQg7KDyvMR5B-HzoCE1mwy2ba9yxvmtiJrdV-xBgO8c5iJL65BCd0slyI1"
}
...
地点照片示例
下面显示了一个请求示例。此请求将返回引用的图片,并调整其大小,使其宽度不超过 400 像素。
https://maps.googleapis.com/maps/api/place/photo?maxwidth=400&photo_reference=AUacShh3_Dd8yvV2JZMtNjjbbSbFhSv-0VmUN-uasQ2Oj00XB63irPTks0-A_1rMNfdTunoOVZfVOExRRBNrupUf8TY4Kw5iQNQgf2rwcaM8hXNQg7KDyvMR5B-HzoCE1mwy2ba9yxvmtiJrdV-xBgO8c5iJL65BCd0slyI1 &key=YOUR_API_KEY
地点照片响应
如果地点照片请求成功,响应将是一幅图片。图片类型取决于最初提交的照片的类型。
如果您的请求超出可用配额,服务器将返回 HTTP 403 状态并显示下图,表示已超出配额:
如果服务器无法理解您的请求,则会返回 HTTP 400 状态,这表示请求无效。请求无效的最常见原因包括:
- 未正确指定提交的照片引用。
- 请求不包含
maxwidth
或maxheight
参数。 maxwidth
或maxheight
参数的值已设置为null
。