2017-12-18 100 views
0

我需要相交2 OGRGeometry。在我的代码中,我定义了一个将与其他OGRGeometry相交的OGRPolygon。OGRGeometry Intersection

这是我OGRPolygon:

OGRLinearRing ring; 
    OGRPolygon poly; 
    ring.addPoint(-300, 300); 
    ring.addPoint(300, 300); 
    ring.addPoint(-300, -300); 
    ring.addPoint(300, -300); 
    ring.closeRings(); 
    poly.addRing(&ring); 

这是路口代码:

for (int i = 0; i < geo5.size(); i++) 
{ 
     qDebug() << geo5[i]->Intersect(&poly); 
     if (geo5[i]->Intersect(&poly)) { 
      qDebug() << "El tipo es "<< geo5[i]->Intersection(&poly); 
      OGRGeometry* newGeo = geo5[i]->Intersection(&poly); 
     } 

} 

newGeo始终是空的,编译器抛出此:

异常时抛出ShapeViewer.exe中的0x00007FFE11593FB8: Microsoft C++ exc eption:geos :: util :: TopologyException在内存 位置0x000000370A0FE5C0。

请问有人能帮我解决这个问题吗?谢谢大家!环的

回答

1

定义无效

-300,300 [1] 300,300 [2] 


-300,-300 [3] 300,-300 [4] 

有交叉点连接[1] [4]点后线[2,3]和[4,1]间点。在添加[3]之前,您应该添加[4]点。

+0

非常感谢!我以为他们下令自己 – Zharios

相关问题