`

如何计算两个多边形的重叠·区域

 
阅读更多
查看PDF手册有方法如下:
8.10.13 ST_Intersection
ST_Intersection — (T) Returns a geometry that represents the shared portion of geomA and geomB. The geography implementation
does a transform to geometry to do the intersection and then transform back to WGS84.
Synopsis
geometry ST_Intersection( geometry geomA , geometry geomB );
geography ST_Intersection( geography geogA , geography geogB );
Description
Returns a geometry that represents the point set intersection of the Geometries.
In other words - that portion of geometry A and geometry B that is shared between the two geometries.
If the geometries do not share any space (are disjoint), then an empty geometry collection is returned.
ST_Intersection in conjunction with ST_Intersects is very useful for clipping geometries such as in bounding box, buffer, region
queries where you only want to return that portion of a geometry that sits in a country or region of interest.


示例如下:
CREATE TABLE testintersection
(
  geom geometry(Polygon,4326),
  gid serial NOT NULL
);
insert into testIntersection values(st_geomfromtext('POLYGON((110 30,110 31, 111 31, 111 30, 110 30))',4326));
insert into testIntersection values(st_geomfromtext('POLYGON((110.5 30.5,110.5 31.5, 111.5 31.5, 111.5 30.5, 110.5 30.5))',4326));
insert into testIntersection select ST_Intersection(st_geomfromtext('POLYGON((110 30,110 31, 111 31, 111 30, 110 30))',4326), st_geomfromtext('POLYGON((110.5 30.5,110.5 31.5, 111.5 31.5, 111.5 30.5, 110.5 30.5))',4326));

使用QGIS查看效果如下





  • 大小: 43.8 KB
分享到:
评论

相关推荐

    计算两个多边形的重叠面积(C++)

    写一个C++程序,计算两个多边形的重叠面积 多边形class定义如下: class Polygon { public: Polygon(float* polygon, int vertex) : polygon(polygon), vertex(vertex) {}; private: float* polygon; // 坐标形式...

    AutoCAD中利用区域计算实现多边形的重叠与空洞检查

    ### AutoCAD中利用区域计算实现多边形的重叠与空洞检查 #### 一、引言 在地籍测量及地图制作过程中,确保不同宗地(土地块)与图斑(土地覆盖类型划分单元)之间的边界准确无误至关重要。传统方法通过人工比对各宗...

    C++ 多边形相交、多边形合并算法,支持凹凸多边形

    简单多边形的相交、合并算法。...这个demo程序只是介绍了多边形相交、合并的算法,针对简单凹凸多边形可以正常处理。算法仅供参考! 如需要支持内部有环的复杂多边形相交合并,请使用boost::polygon。

    计算两个矩形之间的IOU面积和重叠率

    本项目聚焦于计算两个矩形之间的IOU面积和重叠率,这对于理解算法如何判断物体的检测精度至关重要。 首先,我们需要了解IOU的基本概念。IOU是两个矩形交集面积与并集面积的比值,公式可表示为: \[ IOU = \frac{...

    Delphi 两个多边形求交集、并集、差集的源码

    Delphi 两个多边形求交集、并集、差集的源码,使用的是D5,非常古老的版本了,但能解决问题,程序使用标记法,速度非常快,解决了C语言中关于高精度重叠边的问题,示例程序是从CAD中读取多边形数据,方便演示各种...

    多边形的叠加

    并集操作是将两个多边形合并成一个,包含所有原始多边形的区域。这需要识别每个多边形的边界,并将它们连接起来,消除任何重复的边界部分,确保结果是连通且无孔洞的。 4. **差集操作**: 差集操作是从一个多边形...

    [CV] Rotated IoU 如何计算带旋转矩形之间的重叠面积1

    在实际的IoU计算中,需要找出两个矩形的所有交点,然后利用这些交点构建出两个矩形重叠部分的新边界,进一步计算重叠区域的面积。 在实际应用中,如自动驾驶或无人机感知,3D旋转矩形的概念可能扩展到三维空间,...

    如何提取重叠的多边形并计算重叠的面积并为其编写API?

    - 当确定了两个或多边形重叠后,需要对重叠部分进行分割,然后合并成新的多边形。这可能涉及到复杂的几何操作,如Jordan曲线定理和Sweep Line算法。 3. **面积计算**: - 重叠区域的面积计算可以使用Green's ...

    计算重合图像的面积

    % 点乘得到重叠区域 I = I1 .* I2; % 计算面积 L_b = bwlabel(I); % 获取连通域 L_b1 = bwlabel(I1); L_b2 = bwlabel(I2); STATS = regionprops(L_b, 'Area', 'BoundingBox', 'Centroid'); % 计算区域...

    多边形相交计算

    7. **重叠区域计算**:如果两个多边形相交,还需要计算它们的重叠部分,这可能涉及到更复杂的几何分割算法。 8. **用户交互**:在VC++环境中,通过MapObjects库,用户可以直观地绘制和移动多边形,实现交互式操作。...

    C#多边形交并差-可视化操作

    1. **多边形交集**: 找到两个多边形共享的边界和内部区域,形成新的多边形。算法实现通常涉及线段的相交检测。 2. **多边形并集**: 将两个多边形的所有部分合并成一个大的多边形。这可能需要处理重叠部分,确保结果...

    多边形的区域填充(扫描线和种子填充).

    2. **计算边界**:对于每个扫描线,找出与其相交的边,通常会得到两个边界点。如果扫描线在多边形的上方,边界点表示进入和离开多边形;如果在下方,则表示离开和进入。 3. **遍历边界**:根据边界点,我们可以使用...

    SuperMap iObjects Java 8C 批量去除面对象重叠区域

    本范例,"SuperMap iObjects Java 8C 批量去除面对象重叠区域",就是针对这一问题提供了解决方案。SuperMap iObjects是SuperMap公司开发的一套GIS核心组件,支持多种编程语言,Java 8C版本则专门针对Java平台。 1. ...

    poly.rar_布尔_布尔并运算_布尔运算

    这通常涉及计算每一对边的交叉点,如果存在交叉点,则表示两个多边形有重叠部分。 4. **构造新边界**:在确定了多边形的交集后,需要构建新的边界。这可能包括保留原多边形的部分边,以及从交叉点生成的新边。 5. ...

    matlab实现计亩,多边形面积计算,相交面积计算

    5. **相交面积计算**:计算两个或多个多边形的相交部分,需要用到几何交集算法。MATLAB没有内建的函数直接处理这个问题,但可以通过自定义算法实现,例如使用扫描线算法或分治法。首先找出所有交点,然后根据交点...

    opencv和图形计算求取图形交集

    这个函数会按像素级别进行比较,返回的结果是两个图形重叠部分的像素值。 6. **结果展示**:最后,将计算得到的交集图像显示出来,可以使用`imshow()`函数,配合`waitKey()`控制图像窗口的显示时间。 项目链接中的...

    两个矩形求交快速算法

    当两个矩形在平面上没有任何重叠部分时,我们称它们为相离状态。为了快速判断两个矩形是否相离,可以采用基于边界坐标的方法。具体而言,如果一个矩形A的X最大值小于另一个矩形B的X最小值,或者A的X最小值大于B的X...

    基于AutoCAD的多边形间的间隙核查

    具体而言,如果一个多边形A的某个顶点在其一定范围内探测到了另一个多边形B,并且从顶点到多边形B的所有边的距离都大于零,那么就可以断定这两个多边形之间存在间隙。反之,如果顶点与相邻多边形的某些边距离为零,...

    mapx_add.rar_重叠面积

    为了计算重叠面积,我们需要有至少两个多边形对象,这两个对象在空间上相互重叠。通常,这个过程包括以下几个步骤: 1. **加载地图数据**:首先,你需要将包含重叠图形的数据源(如Shapefile、GeoDatabase或自定义...

Global site tag (gtag.js) - Google Analytics