英文:
JS: How to divide a bounding box into two smaller bounding boxes
问题
我们正在使用H3Js库(https://github.com/uber/h3-js)根据边界框(首先转换为多边形,然后使用polygonToCells方法)获取H3单元格。
对于更大的屏幕(4k分辨率),polygonToCells方法返回错误的H3单元格。因此,我想将此边界框分成2或4个部分,这样我就可以获取较小部分的H3单元格,然后将所有的H3单元格合并成一个。
请求的边界框:
15.203087,-109.629878,72.791223,110.448247(纬度/经度格式)
-109.629878,15.203087,110.448247,72.791223(经度/纬度格式)
英文:
We are using H3Js library (https://github.com/uber/h3-js) to fetch the H3Cells based on boundingBox (First converting into polygon and using polygonToCells method).
For bigger screens (4k resolutions), this method polygonToCells is responding with wrong H3 Cells. So thats why I want to divide this bounding box into 2 or 4 pieces, so I can get the H3 cells for smaller pieces then can merge all of the H3 Cells into one.
Requested Bounding box:
15.203087,-109.629878,72.791223,110.448247 (Lat/lng format)
-109.629878,15.203087,110.448247,72.791223 (Lng/Lat format)
答案1
得分: 1
这似乎是一个相当简单的几何问题。
你想要找到一个矩形的中点。
你只需要一个算法来找到给定线段的中点。
例如,Mab
的坐标将如下所示:
x = (x1 + x2)/2
y = y1
找到任意线段的中点的通用方法可能是这样的:
const getMidpoint = (a, b) => [(a[0] + b[0])/2, (a[1] + b[1])/2]
a = [2, 4], b = [8, 8]
getMidpoint(a, b) // 这将得到 [6, 6]
getMidpoint([-10, 6], [10, -2]) // 这将得到 [0, 2]
使用这个简单的函数,你可以很容易地计算出原始矩形的中点,如果你想将矩形分成四个部分,你只需要找到两个对立中点(Mab, Mcd
或者 Mbc, Mad
)的中点。
希望这样能澄清问题。
英文:
Seems like a pretty simple geometry question.
You want to find the midpoints of a rectangle.
You just need an algorithm to find the midpoint of a given line segment.
For example, the coordinates of Mab
will be as follows:
x = (x1 + x2)/2
y = y1
Generic way to find the midpoint of any line segment will be something like:
const getMidpoint = (a, b) => [(a[0] + b[0])/2, (a[1] + b[1])/2]
a = [2, 4], b = [8, 8]
getMidpoint(a, b) //this will be [6, 6]
getMidpoint([-10, 6], [10, -2]) //this will be [0, 2]
Using this simple function, you can calculate the midpoints of the original rectangle really easily, and if you want to divide the rectangle by four, you just have to find the midpoint of the two opposing midpoints (Mab, Mcd
or Mbc, Mad
).
Hope this clears things out.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论