P5 для цикла не останавливается

1

Я хочу, чтобы создать карту, как это.

Мой код выполнен и работает, но сервер ограничивает меня 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();   
    }
}

мой код

  • 0
    Можете ли вы опубликовать код функции loadJSON ?
Теги:
loops
p5.js

1 ответ

1
Лучший ответ

Если я правильно читаю ваш код (что немного сложно, потому что оно не отформатировано должным образом), вы переделываете запрос внутри функции gotData():

var lat = citydata[2];

loadJSON('URL', gotData);

beginShape();

Таким образом, ваш код работает следующим образом:

  1. setup() функция setup().
  2. Вы вызываете loadJSON(), которая делает запрос, а затем вызывает gotData().
  3. gotData() функция gotData().
  4. Внутри функции gotData() вы снова вызываете loadJSON(), что делает другой запрос.
  5. Функция gotData() вызывается снова, и снова, и снова...

Вот почему вы исчерпываете свою квоту. Почему у вас есть второй звонок для loadJSON()? Вы можете просто удалить его?

Также обратите внимание, что вы должны привыкнуть отлаживать свой код и проверять свои инструменты разработчика, чтобы понимать такие проблемы.

  • 0
    Извините за форматирование - я новичок в этом. Да, вы, вероятно, нашли мою ошибку! Я загружаю JSON в steup (), чтобы сделать его доступным. Затем мне нужно загрузить снова, чтобы вставить lon и lat из .csv (я получаю lon и lat в цикле в gotData), поэтому я не могу удалить loadJSON в setup (), и я не могу удалить его в моем gotData?
  • 0
    @foliran Что делает второй вызов loadJSON() ? Чем он отличается от первого звонка? Похоже, вам вообще не нужен этот второй звонок.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню