如何在单个for循环中覆盖网格中的每个方块?

时间:2015-07-05 19:46:36

标签: javascript google-maps-api-3 mapping

我正在实施动态地图图块,并遇到了一个令人费解的问题。假设我有一个8x8正方形的网格,就像棋盘一样。我需要在每个正方形上放置一个图像,最好从中心开始,然后从那里开始。

这可以在单个for循环中完成,还是需要几个循环?正如我所说,这些图像是正方形,并被放置在地图上。纬度/经度均为0.025°。

这是我最初的想法:

for (var i=-0.25; i<=0.25; i+=0.025) {
    var adjustedLatitude = (requestedLatitude + i);
    var adjustedLongitude = (requestedLongitude + i);
}

当然,这只会以对角线模式填充网格。这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

就我个人而言,我认为使用嵌套循环最具可读性:

for (var i=-0.25; i<=0.25; i+=0.025) {
    for (var j=-0.25; j<=0.25; j+=0.025) {
        var adjustedLatitude = (requestedLatitude + i);
        var adjustedLongitude = (requestedLongitude + j);
        doStuffWithAxes(adjustedLatitude, adjustedLongitude);
    }
}

但是,您可以使用单个循环完成它:

for (var i=0; i<=20*20; i++) {
    var xoffset = (i % 20 - 10) / 40;
    var yoffset = (i / 20 - 10) / 40;
    var adjustedLatitude = (requestedLatitude + xoffset);
    var adjustedLongitude = (requestedLongitude + yoffset);
    doStuffWithAxes(adjustedLatitude, adjustedLongitude);
}