当前位置: 首页>>代码示例>>C++>>正文


C++ LineString::isClosed方法代码示例

本文整理汇总了C++中LineString::isClosed方法的典型用法代码示例。如果您正苦于以下问题:C++ LineString::isClosed方法的具体用法?C++ LineString::isClosed怎么用?C++ LineString::isClosed使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在LineString的用法示例。


在下文中一共展示了LineString::isClosed方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1:

mapnik::geometry::polygon<double>  geowave_featureset::create_polygon(Polygon polygon)
{
    mapnik::geometry::polygon<double> polygon_out;
    
    // handle exterior ring
    {
        LineString geom = polygon.getExteriorRing();
        mapnik::geometry::linear_ring<double> linear_ring;
        for (int point_idx = geom.getNumPoints()-1; point_idx >= 0; --point_idx)
        {
            Coordinate coord = geom.getPointN(point_idx).getCoordinate();
            linear_ring.add_coord(coord.x(), coord.y());
        }
        if (geom.isClosed())
        {
            Coordinate coord = geom.getPointN(geom.getNumPoints()-1).getCoordinate();
            linear_ring.add_coord(coord.x(), coord.y());
        }
        polygon_out.set_exterior_ring(std::move(linear_ring));
    }

    // handle interior rings
    {
        for (int ring_idx = 0; ring_idx < polygon.getNumInteriorRing(); ++ring_idx)
        {
            LineString geom = polygon.getInteriorRingN(ring_idx);
            mapnik::geometry::linear_ring<double> linear_ring;
            for (int point_idx = geom.getNumPoints()-1; point_idx >= 0; --point_idx)
            {
                Coordinate coord = geom.getPointN(point_idx).getCoordinate();
                linear_ring.add_coord(coord.x(), coord.y());
            }
            if (geom.isClosed())
            {
                Coordinate coord = geom.getPointN(geom.getNumPoints()-1).getCoordinate();
                linear_ring.add_coord(coord.x(), coord.y());
            }
            polygon_out.add_hole(std::move(linear_ring));
        }
    }
    return polygon_out;
}
开发者ID:mapnik,项目名称:geowave-plugin,代码行数:42,代码来源:geowave_featureset.cpp

示例2: isClosed

bool MultiLineString::isClosed() const {
	if (isEmpty()) {
		return false;
	}
	for (size_t i = 0, n = geometries->size(); i < n; ++i) {
		LineString *ls = dynamic_cast<LineString*>((*geometries)[i]);
		if ( ! ls->isClosed() ) {
			return false;
		}
	}
	return true;
}
开发者ID:AvlWx2014,项目名称:basemap,代码行数:12,代码来源:MultiLineString.cpp


注:本文中的LineString::isClosed方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。