将边界框离散化为40x40网格

时间:2017-07-12 12:45:47

标签: java algorithm geolocation latitude-longitude bounding-box

我有两个位置(lat,long):A和B,它们作为边界框给出。 答:(41,7) B:(43,4)

我需要制作一个40x40网格来离散边框。

41,8. . . . 43,8
.           .
.           .
.           .
.           .
41,7. . . . 43,7

我得到的一点是(41.005,7.001)。

如何在Java中使用此网格从此边界框中获取1600个点?

1 个答案:

答案 0 :(得分:0)

    //Make sure a.x<b.x & a.y <b.y
    Point a = new Point(41,7);
    Point b = new Point(43,8);
    final int gridsize = 40;        

    ArrayList<Point> grid = new ArrayList<Point>(gridsize*gridsize);
    for (double i = a.getX(); i <= b.getX(); i += b.getX() - a.getX() / (double)(gridsize-1))
        for (double j = a.getY(); j <= b.getY(); j +=  b.getY()- a.getY() / (double)(gridsize-1))
            grid.add(new Point(i, j));

我不完全确定我理解你的问题,但是这段代码会创建一个数组列表,其中包含所需边界中40 * 40网格中1600(网格^ 2)点的网格。

这里使用的Point对象是一个名为x和y的双精度数,你需要创建这个对象。