バッチリクエストには本当にクリーンな方法はないと聞いたreferenced hereからGooglePlacesAPI
へ。理解された。GoogleプレイスApiバッチリクエスト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つの応答しか返しません。さらに、それらは順不同です。
どのように各場所の詳細を取得することができるかもしれないかについての洞察はありますか?