Я хочу, чтобы создать карту, как это.
Мой код выполнен и работает, но сервер ограничивает меня 40 запросами в минуту, поэтому мне нужно замедлить мои запросы. Я узнал, что достиг максимального предела сервера даже с одним городом в моем списке.csv (он должен просто отправить один запрос).
Ошибки показывают, что мой цикл не прекращает отправлять запросы с тем же городом на сервер, пока не будет достигнут лимит сервера.
Я хочу, чтобы цикл выполнял каждую .length
один раз и один раз.
В чем дело?
var Städte;
var data;
var profile = 'driving-car'
var preference = 'fastest'
function setup() {
createCanvas(2000,2000);
loadJSON('URL', gotData);
Städte = loadStrings ('v3.1.csv');
}
function gotData(data) {
var route = data.features;
for (var j = 0; j <= 1; j++ ) {
var citydata = Städte[j].split(/,/);
var lon = citydata[3];
var lat = citydata[2];
loadJSON('URL', gotData);
beginShape();
for (var i = 0; i < route[0].geometry.coordinates.length; i=i+500) {
var x = route[0].geometry.coordinates[i][0];
var y = route[0].geometry.coordinates[i][1];
noFill();
vertex(x*100-200,-y*100+6000);
}
endShape();
}
}
Если я правильно читаю ваш код (что немного сложно, потому что оно не отформатировано должным образом), вы переделываете запрос внутри функции gotData()
:
var lat = citydata[2];
loadJSON('URL', gotData);
beginShape();
Таким образом, ваш код работает следующим образом:
setup()
функция setup()
.loadJSON()
, которая делает запрос, а затем вызывает gotData()
.gotData()
функция gotData()
.gotData()
вы снова вызываете loadJSON()
, что делает другой запрос.gotData()
вызывается снова, и снова, и снова... Вот почему вы исчерпываете свою квоту. Почему у вас есть второй звонок для loadJSON()
? Вы можете просто удалить его?
Также обратите внимание, что вы должны привыкнуть отлаживать свой код и проверять свои инструменты разработчика, чтобы понимать такие проблемы.
loadJSON()
? Чем он отличается от первого звонка? Похоже, вам вообще не нужен этот второй звонок.
loadJSON
?