2017-12-18 49 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

相關問題