C++ ArcGis 遍历polygon 的每个点。
代码实现:
IPolygon4Ptr ipPolygon(ipGeom);
IGeometryBagPtr exteriorRingGeometryBag = ipPolygon->GetExteriorRingBag();
IGeometryCollectionPtr exteriorRingGeometryCollection(exteriorRingGeometryBag);
// 取几何图形的个数
long lRegionCount = exteriorRingGeometryCollection->GetGeometryCount();
for (int i = 0; i < lRegionCount; i++)
{
IGeometryPtr exteriorRingGeometry = exteriorRingGeometryCollection->GetGeometry( i );
// 取外环的点
IPointCollectionPtr exteriorRingPointCollection( exteriorRingGeometry );
long lPointCount = exteriorRingPointCollection->GetPointCount();
for( int j = 0; j < lPointCount; j++ )
{
IPointPtr ipPoint = exteriorRingPointCollection->GetPoint( j );
}
// 取内环的点
IRingPtr ipRing( exteriorRingGeometry );
IGeometryBagPtr interiorRingGeometryBag = ipPolygon->GetInteriorRingBag( ipRing );
IGeometryCollectionPtr interiorRingGeometryCollection = ( IGeometryCollectionPtr )interiorRingGeometryBag;
long lInteriorCount = interiorRingGeometryCollection->GetGeometryCount();
for (int k = 0; k < lInteriorCount; k++)
{
IGeometryPtr interiorRingGeometry = interiorRingGeometryCollection->GetGeometry(k);
IPointCollectionPtr interiorRingPointCollection( interiorRingGeometry);
long lInteriorPointCount = interiorRingPointCollection->GetPointCount();
for (int m = 0; m < lInteriorPointCount; m++)
{
IPointPtr ipPoint = interiorRingPointCollection->GetPoint(m);
}
}
}
本文详细介绍了如何使用C++和ArcGIS遍历polygon的每个点,包括获取几何图形数量、外环和内环点的提取及遍历。
1414

被折叠的 条评论
为什么被折叠?



