我正在开发一个网站,可以显示几个地方的照片。我得到的照片是这样的:
var photos = typeof place.photos !== 'undefined' ? place.photos[0].getUrl({ 'maxWidth': 100, 'maxHeight': 125 }) : '';
if (photos.length) {//...//}
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我想显示照片时,它们的清晰度非常糟糕:
注意:我用w3schools 幻灯片显示照片,并将照片设置如下:
var images = document.getElementById("PhotoFond").getElementsByTagName("img");
for (i=0; i<images.length; i++;) {
if (!photosSlide[i]) {return;}
images[n - 1].src = photosSlide[i];
}
Run Code Online (Sandbox Code Playgroud)
然而,当我去谷歌地图并找到同一张照片(链接到同一张照片)时,质量更好。
我怎样才能有相同的分辨率?
从 Google 的Place Photos 文档中,我应该能够通过photo_reference向他们附近的搜索、雷达或地点详细信息服务发出请求来检索密钥。
我打自己的位置信息服务,和我收到的有10种元素的照片数组,但这些元素只包含height,width和html_attribution键。我是否在这里遗漏了一些东西,或者他们的 API 在没有更新他们的文档的情况下发生了变化?
这是我对放置详细信息的请求,place响应在哪里:
export function placeDetailsFetchData(placeId) {
return (dispatch) => {
const request = { placeId };
const service = new google.maps.places.PlacesService(document.createElement('div'));
service.getDetails(request, (place, status) => {
if (status == google.maps.places.PlacesServiceStatus.OK) {
dispatch({
type: PLACE_DETAILS_FETCH_DATA_SUCCESS,
place
});
} else {
dispatch(placeDetailsHasErrored(true));
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
这是响应中的照片值:
[
{
"height": 3024,
"html_attributions": [
"<a href=\"https://maps.google.com/maps/contrib/109733975839515761188/photos\">Chris Bair</a>"
],
"width": 4032
},
{
"height": 2992, …Run Code Online (Sandbox Code Playgroud)