我想创建一个地图就像这样。我的代码已经完成并且可以工作,但是服务器将我限制为 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(); }}
1 回答
慕标琳琳
TA贡献1830条经验 获得超9个赞
如果我正确阅读了您的代码(这有点困难,因为它的格式不正确),那么您正在重新执行gotData()函数内部的请求:
var lat = citydata[2];
loadJSON('URL', gotData);
beginShape();
所以你的代码是这样工作的:
该
setup()
函数被调用。您调用
loadJSON()
函数,该函数发出请求,然后调用该gotData()
函数。该
gotData()
函数被调用。在
gotData()
函数内部,您loadJSON()
再次调用,这会发出另一个请求。该
gotData()
函数被一次又一次地调用......
这就是您耗尽配额的原因。你为什么要loadJSON()
在那里打第二个电话?你能把它去掉吗?
另请注意,您应该养成调试代码并检查开发人员工具以了解此类问题的习惯。
添加回答
举报
0/150
提交
取消