2017-12-18 2 views
0

교차 필요 2 OGRGeometry. 내 코드에서 다른 OGRGeometry와 교차 될 OGRPolygon을 정의하고있다.OGRGeometry 교차점

이 내 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 항상 null이며, 컴파일러는이 던져 : 던져

예외 ShapeViewer.exe의 0x00007FFE11593FB8 : Microsoft C++ exc 내용 : geos :: util :: TopologyException이 메모리 위치 0x000000370A0FE5C0에 있습니다.

이 문제로 저를 도울 수 있습니까? 모두에게 감사드립니다! 링

답변

1

정의 교점 [4] 포인트 [1]에 연결된 후 라인 [2,3]와 [4,1] 사이의 지점이

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


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

잘못. [3]을 (를) 추가하기 전에 [4] 점을 추가해야합니다.

+0

감사합니다. 나는 그들이 스스로 명령했다고 생각했다. – Zharios