如何划分矩形

时间:2017-03-01 02:40:09

标签: java algorithm geocoding

我有四个纬度和经度值,可以创建一个矩形(区域)。现在我想将矩形划分为网格。

所以我定义了latlong (11.20804, 122.22839),(11.20804, 122.52914),(11.06926, 122.52914),(11.06926, 122.22839) 划分网格后,我想给每个网格一个id,并想要每个grid_id的纬度和经度值。我正在努力如何将矩形划分为网格并为它们分配grid_id。 任何帮助表示赞赏

1 个答案:

答案 0 :(得分:1)

像这样的东西。将需要玩它并决定你的确定底部是否没有完美的正方形。这是一个起点,而不是一个完整的解决方案。

我刚看到你想要网格ID,所以猜测就像1,1,所以你必须调整它来满足你的需求。

double width = 122.52914 - 122.22839;
double height = 11.20804 - 11.06926;
int numbSquares = 10;
int lengthOfOneSquare = width/numbSquares;

HashMap<Double[], String> hmap = new HashMap<Double[], String>();

for (double x = 11.20804; x <= 11.06926 - lengthOfOneSquare; x += lengthOfOneSquare) {
    for (double y = 122.22839; y <= 122.52914 - lengthOfOneSquare; y+= lengthOfOneSquare) {
        Double[] location = new Double[]{x, y};
        String id = x+""+y;    <--- converts x and y to a string
        hmap.put(location, id);
    }
}