PostGIS 能否生成正方形的 bounding box?
正方形Bounding Box生成方法
完全可以实现,核心逻辑是基于原始边界框的中心点,将边长统一为原始宽高的最大值,保证原有空间要素完全被包裹在内,具体实现步骤如下:
- 先提取原始边界框的基础坐标值
min_x, max_x, min_y, max_y,计算原始宽高:width = max_x - min_xheight = max_y - min_y - 取宽高的最大值作为正方形边界框的边长:
side_len = max(width, height) - 计算原始边界框的中心点坐标,再基于中心点和边长推导正方形边界框的四个坐标:
# 计算中心点 center_x = (min_x + max_x) / 2 center_y = (min_y + max_y) / 2 # 生成正方形边界框坐标 square_min_x = center_x - side_len / 2 square_max_x = center_x + side_len / 2 square_min_y = center_y - side_len / 2 square_max_y = center_y + side_len / 2
最终得到的square_min_x、square_max_x、square_min_y、square_max_y就是你需要的正方形边界框,效果和你给出的示例一致:
特殊场景注意事项:
- 如果你需要固定边长的正方形边界框,直接把
side_len替换为你指定的固定值即可,计算逻辑不变- 如果是地理空间要素,建议先投影到平面坐标系再执行上述计算,避免经纬度的球面特性导致生成的边界框实际不是正方形
内容的提问来源于stack exchange,提问作者Jamie Dunbar
相关产品推荐
相关产品推荐

