Polylgon对象是由一个或多个Ring对象的有序集合,它可以是由单个Ring 对象构
成,也可以使用多个Ring组成。Polygon通常用来代表有面积的多边形矢量对象,如行政
区,建筑物等。

组成Polygone的是Ring其中Ring可以分为Outer Ring(外环)和Inner  Ring(内环)
之分。外环和内环都是有方向的,它们的区别是外环的方向是顺时针的,内环的方向是逆时
针。

以下代码片段演示如何构建一个Polygon:
   private  object pMissing = Type.Missing;

public  IGeometry GetPolygonGeometry()
        {
            const double RingVertexCount = 360;
            const double RingDegrees = 360.0;
            const double pOutRingRadius = 100;
            const double pInRingRadius = 40;
 
            IGeometryCollection pGeometryCollection = new PolygonClass();
 
 
 
                IPointCollection pOuterPointCollection = new RingClass();
                IPointCollection pInnerPointCollection = new RingClass();
 
              
                
 
                double pRotationAngleInRadians =
                       GetRadians(RingDegrees / RingVertexCount);
 
                for (int j = 0; j < RingVertexCount; j++)
                {
                                       pOuterPointCollection.AddPoint(ConstructPoint(pOutRingRadius
*Math.Cos(j*pRotationAngleInRadians),pOutRingRadius *Math.Sin(j*pRotationAngleInRadians)), 
ref pMissing, ref pMissing);
 
                    pOuterPointCollection.AddPoint(ConstructPoint (pInRingRadius * Math.Cos(j
* pRotationAngleInRadians), pInRingRadius * Math.Sin(j * pRotationAngleInRadians)), ref pMissing,
ref pMissing);
                           
                                  
                }

ITopologicalOperator pTopologicalOperator =
            pGeometryCollection as ITopologicalOperator;
     pTopologicalOperator.Simplify();
     return pGeometryCollection as IGeometry;

}
 
    
     private  double GetRadians(double pDecimalDegrees)
     {
         return pDecimalDegrees * (Math.PI / 180);
     }

Polygone对象的更多相关文章

  1. 如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑

    阅读目录 前言 场景1的思考 场景2的思考 避坑方式 实践 结语 一.前言 在上一篇中(如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成),有一行注释的代码: public interfa ...

  2. javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈

    Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...

  3. 探究javascript对象和数组的异同,及函数变量缓存技巧

    javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...

  4. Asp.Net WebApi核心对象解析(下篇)

    在接着写Asp.Net WebApi核心对象解析(下篇)之前,还是一如既往的扯扯淡,元旦刚过,整个人还是处于晕的状态,一大早就来处理系统BUG,简直是坑爹(好在没让我元旦赶过来该BUG),队友挖的坑, ...

  5. JS核心系列:浅谈原型对象和原型链

    在Javascript中,万物皆对象,但对象也有区别,大致可以分为两类,即:普通对象(Object)和函数对象(Function). 一般而言,通过new Function产生的对象是函数对象,其他对 ...

  6. Chrome出了个小bug:论如何在Chrome下劫持原生只读对象

    Chrome出了个小bug:论如何在Chrome下劫持原生只读对象 概述 众所周知,虽然JavaScript是个很灵活的语言,浏览器里很多原生的方法都可以随意覆盖或者重写,比如alert.但是为了保证 ...

  7. XStream将java对象转换为xml时,对象字段中的下划线“_”,转换后变成了两个的解决办法

            在前几天的一个项目中,由于数据库字段的命名原因 其中有两项:一项叫做"市场价格"一项叫做"商店价格" 为了便于区分,遂分别将其命名为market ...

  8. ASP.NET内置对象的总结

    1. Response对象可形象的称之为响应对象,用于将数据从服务器发送回浏览器. 实例源码:链接: http://pan.baidu.com/s/1dDCKQ8x 密码: ihq0  2. Requ ...

  9. ADO.NET对象的详解

    1. Connection 类 和数据库交互,必须连接它.连接帮助指明数据库服务器.数据库名字.用户名.密码,和连接数据库所需要的其它参数.Connection对象会被Command对象使用,这样就能 ...

随机推荐

  1. POJ 2418 Hardwood Species (哈希,%f 和 %lf)

    我的错因: 本来改用%f输出,我用了%lf,结果编译器直接判定为错误(一部分编译器认为lf是没有错的).当时我还以为是hash出错了.. 方法不止一种: 方法 时间   空间 Hash 891ms 5 ...

  2. 几个可用于数据挖掘和统计分析的java库

    http://itindex.net/blog/2015/01/09/1420751820000.html WEKA:WEKA是一个可用于数据挖掘任务的机器学习算法集合.该算法可以直接应用到数据集或从 ...

  3. json 数组 对象 xml 之间转换(待补充)

    json 数组  xml 对象   之间转换(待补充) 1 把对象的类型或者数组转换成字符串类型(或者更确切的说是json类型的). 此处参考链接http://www.jb51.net/article ...

  4. find unique values in an array

    Problem: given an array that contains duplicates (except one value), find the one value that does no ...

  5. 获取IP地址bash[转载]

    ipaddr=`/sbin/ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' | cut -d : -f2 | awk '{print $1}'`

  6. Hololens 开发环境配置

    安装 Hololens SDK 转自 Vangos Pterneas, 4 Apr 2016 CPOL    5.00 (1 vote) vote 1vote 2vote 3vote 4vote 5 ...

  7. 详细,Qt Creator快捷键大全,附快捷键配置方法

    一.快捷键配置方法: 进入“工具->选项->环境->键盘”即可配置快捷键. 二.常用默认快捷键: 编号 快捷键 功能 1 Esc 切换到代码编辑状态 2 F1 查看帮助(选中某一类或 ...

  8. perl-cgi命令行调试

    来源: http://www.cnblogs.com/itech/archive/2012/09/23/2698838.html 参考: http://docstore.mik.ua/orelly/l ...

  9. wlcore: firmware chunk too long

    insmod wlcore_sdio.ko 的时候出现的错误 43.767890] Powering on wl12xx [  143.846003] Powering off wl12xx [  1 ...

  10. 笨方法学python--打印

    1 print 语句 尾端的逗号 end1 = "C" end2 = "h" end3 = "e" end4 = "e" ...