我是靠谱客的博主 能干小蜜蜂,最近开发中收集的这篇文章主要介绍GIS中复杂多边形的处理(例如孤岛、空心多边形),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

对于ArcGIS中的复杂多边形处理起来有时候比较棘手,我们可以使用IPolygon4接口,遍历IPolygon当中多有的外环和内环

下面给出代码示例:

 public
void PolygonToRing(IPolygon4 polygon)
{
IGeometryBag exteriorRingGeometryBag = polygon.ExteriorRingBag;
IGeometryCollection exteriorRingGeometryCollection = exteriorRingGeometryBag as IGeometryCollection;
for (int i = 0; i < exteriorRingGeometryCollection.GeometryCount; i++)
{
List<IPoint> PointResult = new List<IPoint>();
IGeometry exteriorRingGeometry = exteriorRingGeometryCollection.get_Geometry(i);
IPointCollection exteriorRingPointCollection = exteriorRingGeometry as IPointCollection;
ReadPoints(exteriorRingPointCollection,PointResult);
CreateJson(PointResult);
IGeometryBag interiorRingGeometryBag = polygon.get_InteriorRingBag(exteriorRingGeometry as IRing);
IGeometryCollection interiorRingGeometryCollection = interiorRingGeometryBag as IGeometryCollection;
for (int k = 0; k < interiorRingGeometryCollection.GeometryCount;k++ )
{
IGeometry interiorRingGeometry = interiorRingGeometryCollection.get_Geometry(k);
IPointCollection interiorRingPointCollection = interiorRingGeometry as IPointCollection;
ReadPoints(interiorRingPointCollection, PointResult);
CreateJson(PointResult);
}
}
}
/// <summary>
/// 获取结果多边形节点坐标
/// </summary>
/// <param name="ptCol"节>点集合</param>
private void ReadPoints(IPointCollection ptCol, List<IPoint> PointResult)
{
IPoint pnt;
for (int i = 0; i < ptCol.PointCount; i++)
{
pnt = ptCol.get_Point(i);
PointResult.Add(pnt);
}
}
ARCGIS复杂多边形基础知识讲解
http://www.cnblogs.com/willwayer/archive/2010/09/13/1824721.html

最后

以上就是能干小蜜蜂为你收集整理的GIS中复杂多边形的处理(例如孤岛、空心多边形)的全部内容,希望文章能够帮你解决GIS中复杂多边形的处理(例如孤岛、空心多边形)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(29)

评论列表共有 0 条评论

立即
投稿
返回
顶部