OGRGeometry пересечение

мне нужно пересечь 2 OGRGeometry. В моем коде я определяю OGRPolygon, который будет пересекаться с другими OGRGeometry.

Это мой ОГРПолигон:

    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 всегда равно нулю, и компилятор выдает это:

Исключение, выброшенное в 0x00007FFE11593FB8 в ShapeViewer.exe:
Microsoft C ++ исключение: geos :: util :: TopologyException в памяти
местоположение 0x000000370A0FE5C0.

Может ли кто-нибудь помочь мне с этой проблемой, пожалуйста? Спасибо всем!

0

Решение

Определение кольца неверно

-300,300 [1]    300,300 [2]-300,-300 [3]   300,-300 [4]

есть точка пересечения между линией [2,3] и [4,1] после соединения [1] с [4] точками. Вы должны добавить [4] пункт перед добавлением [3].

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]