2017-08-18 2 views
0

À partir de Place Photos documentation de Google Je devrais être en mesure de récupérer une clé photo_reference de faire une demande à leurs services de recherche, de radar, ou de détails de lieu à proximité.Où puis-je récupérer la valeur de photo_reference pour effectuer une requête Google Adresses?

Je suis frappé leur service détails place, et je reçois un tableau de photos avec 10 éléments, mais ces éléments ne contiennent que les height, width et html_attribution clés. Ai-je manqué quelque chose ici ou leur API a-t-elle changé sans mettre à jour leur documentation?

Voilà ma demande de placer les détails, où place est la réponse:

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)); 
     } 
    }); 
    } 
} 

est ici la valeur de photos dans la réponse:

[ 
    { 
    "height": 3024, 
    "html_attributions": [ 
     "<a href=\"https://maps.google.com/maps/contrib/109733975839515761188/photos\">Chris Bair</a>" 
    ], 
    "width": 4032 
    }, 
    { 
    "height": 2992, 
    "html_attributions": [ 
     "<a href=\"https://maps.google.com/maps/contrib/100217631342523519461/photos\">Samir Soriano</a>" 
    ], 
    "width": 4000 
    }, 
    { 
    "height": 453, 
    "html_attributions": [ 
     "<a href=\"https://maps.google.com/maps/contrib/106775786962992563502/photos\">Frisco Fried</a>" 
    ], 
    "width": 604 
    }, 
    { 
    "height": 5312, 
    "html_attributions": [ 
     "<a href=\"https://maps.google.com/maps/contrib/111414489430298948350/photos\">Tu Lam</a>" 
    ], 
    "width": 2988 
    }, 
    { 
    "height": 1920, 
    "html_attributions": [ 
     "<a href=\"https://maps.google.com/maps/contrib/109551371558914502695/photos\">Kenny Reed</a>" 
    ], 
    "width": 2560 
    }, 
    { 
    "height": 4160, 
    "html_attributions": [ 
     "<a href=\"https://maps.google.com/maps/contrib/110844988640416794228/photos\">Vicious V</a>" 
    ], 
    "width": 3120 
    }, 
    { 
    "height": 2576, 
    "html_attributions": [ 
     "<a href=\"https://maps.google.com/maps/contrib/103079141129202103200/photos\">Romayne Ward</a>" 
    ], 
    "width": 1932 
    }, 
    { 
    "height": 5312, 
    "html_attributions": [ 
     "<a href=\"https://maps.google.com/maps/contrib/103167182117207780142/photos\">Michael C</a>" 
    ], 
    "width": 2988 
    }, 
    { 
    "height": 1836, 
    "html_attributions": [ 
     "<a href=\"https://maps.google.com/maps/contrib/116997882870097389214/photos\">Sam Johnson</a>" 
    ], 
    "width": 3264 
    }, 
    { 
    "height": 4032, 
    "html_attributions": [ 
     "<a href=\"https://maps.google.com/maps/contrib/113862636441079805689/photos\">Wes Wu</a>" 
    ], 
    "width": 3024 
    } 
] 

Répondre

1

L'objet google.maps.places.PlacePhoto fournit la méthode getUrl() qui retourne URL la photo de l'endroit. Utilisez cette méthode pour obtenir l'URL de l'image, l'API Maps JavaScript n'expose pas une référence de photo.

Jetez un oeil à la documentation pour plus de détails:

https://developers.google.com/maps/documentation/javascript/reference#PlacePhoto

place.photos.forEach(function (placePhoto) { 
    var url = placePhoto.getUrl({ 
     maxWidth: 600, 
     maxHeight: 400 
    }); 
});