Я получаю OVER_QUERY_LIMIT при отправке нескольких запросов на обслуживание направления. Я знаю, что это хорошо известная проблема, и есть несколько способов отложить отправку запроса, но я не могу этого сделать, потому что мой запрос отправлен в цикле php for. Пожалуйста, помогите !!!
Вот часть моего php-кода (код работает нормально, но в какой-то момент времени я получаю ошибку OVER_QUERY_LIMIT:
for($i=0;$i<count($PlanningArray);$i++){
echo"script>
initMap('$Userlocation','$ActLocation1','$ActLocation2','$DivMapID'
</script> "
}
Вот функция:
function initMap(Userloc,Actloc1,Actloc2,i) {var renderOptions = {draggable:true};
var directionsDisplay = new google.maps.DirectionsRenderer(renderOptions);
var directionsService = new google.maps.DirectionsService;
var mapOptions = {
zoom: 11,
center: {lat:-20.239340, lng:57.574604}
};
var map = new google.maps.Map(document.getElementById('map' + i), mapOptions);
directionsDisplay.setMap(map);
var items = [Actloc1,Actloc2];
var destination;
if(Actloc2 == ''){
destination = Actloc1;
}
else {
destination = Actloc2;
}
var waypoints = [];
for (var j = 0; j < items.length; j++) {
var address = items[j];
if (address !== '') {
waypoints.push({
location: address,
stopover: true
});
}
}
directionsService.route({
origin: Userloc,
destination: destination,
travelMode: 'DRIVING',
waypoints: waypoints
}, function(response, status) {
if (status === 'OK') {
directionsDisplay.setDirections(response);
} else {
window.alert('Directions request failed due to ' + status);
}
});
}
Как я могу приостановить php-код или функцию javascript?
Я не могу проверить ваш источник, но, похоже, это решение
подождите 1 секунду или больше, попробуйте …
if (stripos($ret,"OVER_QUERY_LIMIT"))
{
echo "<font color=red>OVER_QUERY_LIMIT waiting for 1 sec</font>";
ob_flush();
flush();
sleep(1);
...
}
Других решений пока нет …