Так что я слышал, что нет реального чистого способа пакетных запросов referenced here до GooglePlacesAPI
; понят.Google Places Api Batch Requests Javascript
Но там должна быть работа.
const retrievePlaces = (google, map, request) => {
var places = [];
var newPlaces = []
var service = new google.maps.places.PlacesService(map);
return new Promise(function(resolve, reject) {
service.nearbySearch(request, function(results, status){
if(status == "OK"){
for (var i = 0; i < results.length; i++) {
var place = results[i];
places.push(place);
}
resolve(places);
}
});
});
}
Я использую вышеуказанную функцию, чтобы сначала получить мои места (это прекрасно работает). Затем я использую:
const retrieveDetails = (google, map, places) => {
var gmap = {
map: map,
google: google
};
var placeIds = places.map(function(place){
return { placeId: place.place_id }
});
var promiseArray = placeIds.map(place => getPlaceDetailsPromise(place, gmap)
.then( res => ({res}))
.catch(err => ({err})));
Promise.all(promiseArray)
.then(results => {
console.log(results);
});
}
и:
const getPlaceDetailsPromise = (obj, gmap) => new Promise((resolve, reject) => {
var service = new gmap.google.maps.places.PlacesService(gmap.map);
service.getDetails(obj, (place, status) => {
if (status === google.maps.places.PlacesServiceStatus.OK) {
console.log(" Status OK", place);
resolve(place);
} else {
console.log("Not OK");
}
});
});
, чтобы попытаться получить данные для всех мест от PlaceDetailsAPI
. Что отстой, так это то, что он действительно работает в определенной степени, но он всегда возвращает только 9 ответов и не более. кроме того, они вышли из строя.
У кого-нибудь есть представление о том, как можно было бы получить детали для каждого места?