P5 for 循环不停
P5 for loop doesnt stop
我想创建一个类似 this 的地图。
我的代码已完成并可以运行,但服务器将我限制为 40 requests/minute,因此我需要放慢请求速度。我发现我的 .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();
}
}
my code
如果我正确阅读了您的代码(这有点困难,因为它的格式不正确),那么您正在 gotData()
函数中重做请求:
var lat = citydata[2];
loadJSON('URL', gotData);
beginShape();
所以你的代码是这样工作的:
- 调用了
setup()
函数。
- 您调用
loadJSON()
函数,该函数发出请求,然后调用 gotData()
函数。
- 调用了
gotData()
函数。
- 在
gotData()
函数中,您再次调用 loadJSON()
,这会发出另一个请求。
gotData()
函数被一次又一次地调用...
这就是您用尽配额的原因。为什么你在那里第二次调用 loadJSON()
?可以直接删除吗?
另请注意,您应该养成debugging your code and checking your developer tools的习惯才能理解此类问题。
我想创建一个类似 this 的地图。
我的代码已完成并可以运行,但服务器将我限制为 40 requests/minute,因此我需要放慢请求速度。我发现我的 .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();
}
}
my code
如果我正确阅读了您的代码(这有点困难,因为它的格式不正确),那么您正在 gotData()
函数中重做请求:
var lat = citydata[2];
loadJSON('URL', gotData);
beginShape();
所以你的代码是这样工作的:
- 调用了
setup()
函数。 - 您调用
loadJSON()
函数,该函数发出请求,然后调用gotData()
函数。 - 调用了
gotData()
函数。 - 在
gotData()
函数中,您再次调用loadJSON()
,这会发出另一个请求。 gotData()
函数被一次又一次地调用...
这就是您用尽配额的原因。为什么你在那里第二次调用 loadJSON()
?可以直接删除吗?
另请注意,您应该养成debugging your code and checking your developer tools的习惯才能理解此类问题。