本文整理汇总了C++中OGRLinearRing::reverseWindingOrder方法的典型用法代码示例。如果您正苦于以下问题:C++ OGRLinearRing::reverseWindingOrder方法的具体用法?C++ OGRLinearRing::reverseWindingOrder怎么用?C++ OGRLinearRing::reverseWindingOrder使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OGRLinearRing
的用法示例。
在下文中一共展示了OGRLinearRing::reverseWindingOrder方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: WindPolygonCCW
OGRPolygon* OGRGMELayer::WindPolygonCCW( OGRPolygon *poPolygon )
{
CPLAssert( NULL != poPolygon );
OGRLinearRing* poRing = poPolygon->getExteriorRing();
if (poRing == NULL) {
return poPolygon;
}
// If the linear ring is CW re-wind it CCW
if (poRing->isClockwise() ) {
poRing->reverseWindingOrder();
}
/* Interior rings. */
const int nCount = poPolygon->getNumInteriorRings();
for( int i = 0; i < nCount; ++i ) {
poRing = poPolygon->getInteriorRing( i );
if (poRing == NULL)
continue;
// If the linear ring is CW re-wind it CCW
if (poRing->isClockwise() ) {
poRing->reverseWindingOrder();
}
}
return poPolygon;
}
示例2: OGRGMEPolygonToGeoJSON
json_object* OGRGMEPolygonToGeoJSON( OGRPolygon* poPolygon )
{
CPLAssert( NULL != poPolygon );
/* Generate "coordinates" array object. */
json_object* pjoCoordinates = NULL;
pjoCoordinates = json_object_new_array();
/* Exterior ring. */
OGRLinearRing* poRing = poPolygon->getExteriorRing();
if (poRing == NULL) {
json_object_put(pjoCoordinates);
return NULL;
}
json_object* pjoRing = NULL;
// If the linear ring is CW re-wind it CCW
if (poRing->isClockwise() ) {
poRing->reverseWindingOrder();
}
pjoRing = OGRGMELineCoordsToGeoJSON( poRing );
json_object_array_add( pjoCoordinates, pjoRing );
/* Interior rings. */
const int nCount = poPolygon->getNumInteriorRings();
for( int i = 0; i < nCount; ++i ) {
poRing = poPolygon->getInteriorRing( i );
if (poRing == NULL)
continue;
// If the linear ring is CW re-wind it CCW
if (poRing->isClockwise() ) {
poRing->reverseWindingOrder();
}
pjoRing = OGRGMELineCoordsToGeoJSON( poRing );
json_object_array_add( pjoCoordinates, pjoRing );
}
return pjoCoordinates;
}