专利名称:基于gis组件的地球椭球面上线要素缓冲区生成方法
技术领域:
本发明涉及地理信息系统(GIS)和海洋划界领域,尤其涉及一种基于GIS组件的地球椭球面上线要素缓冲区生成方法。
背景技术:
目前,在地图投影平面上建立点、线、面及复合要素(以下简称各要素)缓冲区的方法已十分成熟,且早已经成为各种地理信息系统(GIQ软件中最基本的一种空间分析方法,并以GIS桌面软件或GIS组件(控件)的形式为用户提供相应的应用服务,但由于这种方法建立的各要素缓冲区,在精度上均不可避免地会受到地图投影变形的影响,因而无法满足海洋划界等领域的使用要求,针对这一问题,有关学者利用椭球大地测量计算方法,消除了地图投影变形的影响,并建立了基于地球椭球体的各缓冲区构建技术(彭认灿,王家耀. 基于地球椭球体的缓冲区构建技术研究,测绘学报,vol31,2002 (3):270-273)(文献1);彭认灿,陈轶,刘国辉,等.Maphf0系统线(面)目标缓冲区构建模型存在的问题及其改进方法,武汉大学学报信息科学版,vol 32,2007 (8):719-722)(文献2),通过对上述文献的分析不难发现,它们只概略给出了在地球椭球面上建立各要素缓冲区的基本思路,而关于如何利用GIS组件建立地球椭球面上各要素的缓冲区,则还属于技术空白,由于点要素可以看成是线要素或面要素的特例,而面要素和复合要素又可由点、线、面要素组合而成,因此, 只需研究基于GIS组件的地球椭球面上线要素缓冲区生成方法即可。
发明内容
本发明的目的是提供一种基于GIS组件的地球椭球面上线要素缓冲区生成方法。本发明为实现上述目的所采用的技术方案是一种基于GIS组件的地球椭球面上线要素缓冲区生成方法,包括以下步骤
a、通过大地线内插模型确定出经加密后的地球椭球面上线要素的各顶点;
b、通过椭球大地计算公式计算出以地球椭球面上线要素两端点和经加密后的各顶点为圆心、缓冲距为半径的大地圆;
C、通过椭球大地计算公式解算出以地球椭球面上线要素经加密后的各相邻顶点之间的线段为公共底边,其两侧以缓冲距为高的大地矩形;
d、将步骤b和步骤c中建立的所有大地圆和大地矩形,利用CIS组件进行并集生成处理,得到的多边形即为地球椭球面上线要素缓冲区。步骤a中未经大地线内插模型加密的地球椭球面上线要素的各顶点坐标为(bl, 11),(b2,12),…,(bm,lm),则经大地线内插模型加密后的地球椭球面上线要素的各顶点坐标为(Bi,Li),(B2,L2),…,(Bn, Ln),其中,η 彡 m。所述步骤b中首先将地球椭球面上线要素两端点和各顶点视为独立的点要素,然后分别建立其在地球椭球面上的大地圆。所述步骤c中地球椭球面上线要素经加密后的各相邻顶点之间的线段为小段大地线,按大地问题正解法分别从每一小段大地线两端点出发,求方位角与其成90°和/或 270°距离为缓冲区半径的左侧和右侧平行线点位之经纬度坐标,并对经纬度坐标进行配对连接形成所需的每一个大地矩形。本发明以大地线尺度作为缓冲距的度量尺度,也就是说,线要素到其缓冲区边界的最小距离——缓冲距是按大地线长度进行量算的,相应地,以地球椭球面上线要素的端点或顶点为圆心、给定缓冲距为半径所构建的地球椭球面上的封闭区域称为大地圆;以地球椭球面上组成线要素的线段为公共底边,以给定缓冲距为其两侧高所构建的地球椭球面上的封闭区域称为大地矩形。本发明一种基于GIS组件的地球椭球面上线要素缓冲区生成方法,解决了利用 GIS组件生成地球椭球面上线要素缓冲区的各种技术问题,即通过求地球椭球面上以线要素两端点和各顶点为圆心、以缓冲距为半径的大地圆,以及以线要素各相邻顶点之间的线段为公共底边、以缓冲距为其两侧高的大地矩形的并集的方法,得到线要素在地球椭球面上的缓冲区,本发明直接利用通用GIS组件Arc Objects和SuperMap Objects所提供的多边形并集生成功能,大大简化了生成地球椭球面上线要素缓冲区的过程,为具有GIS 二次开发能力的用户提供了一种十分便捷、有效的在任一地图投影平面上生成地球椭球面上线要素缓冲区的方法,利用本发明可以为海洋划界提供一种生成高精度单边和双边海洋界限的有效技术手段,对依法维护国家海洋权益具有重要的意义。
图1是本发明在等距圆柱投影平面上经大地线内插模型加密后的线要素示意图。图2是本发明在等距圆柱投影平面上加密后的线要素定点所对应的大地圆和大地矩形示意图。图3是本发明利用SuperMap Objects组件在等距圆柱投影平面上生成的地球椭球面上线要素的缓冲区示意图。图4是本发明利用Arc Objects组件生成的地球椭球面上线要素缓冲区示意图。图5是本发明利用SuperMap Objects组件生成的地球椭球面上线要素缓冲区示意图。
具体实施例方式如图1-图5所示,本发明基于GIS组件的地球椭球面上线要素缓冲区生成方法,其具体步骤为a、通过大地线内插模型确定出经加密后的地球椭球面上线要素的各顶点,假设未经大地线内插模型加密的地球椭球面上线要素的各顶点坐标为(bl,11),(b2, 12),…,(bm,lm)(单位为度,下同),则经大地线内插模型加密后的地球椭球面上线要素的各顶点坐标为(Bi,Li),(B2,L2),…,(Bn, Ln),其中,η彡m ;b、通过椭球大地计算公式计算出以地球椭球面上线要素两端点和经加密后的各顶点为圆心、缓冲距为半径的大地圆, 这实质上就是首先将地球椭球面上线要素两端点和各顶点视为独立的点要素,然后分别建立其在地球椭球面上的大地圆;C、通过椭球大地计算公式解算出以地球椭球面上线要素经加密后的各相邻顶点之间的线段为公共底边,其两侧以缓冲距为高的大地矩形,由于地球椭球面上线要素经加密后的各相邻顶点之间的线段即为小段大地线,因此可按大地问题正解法分别从每一小段大地线两端点出发,求方位角与其成90°和/或270°距离为缓冲区半径的左和右侧平行线点位之经纬度坐标,并对其进行配对连接形成所需的每一个大地矩形;d、将步骤b和步骤c中建立的所有大地圆和大地矩形,利用CIS组件进行并集生成处理,得到的多边形即为地球椭球面上线要素缓冲区。 目前,国内外均已推出了不少功能强大的GIS组件,如美国ESRI公司的Arc Objects和我国超图公司的SuperMap Objects等,这些组件都以不同的调用方式提供了多边形并集生成功能,在VC++6. 0环境下,美国ESRI公司的Arc Objects组件通过ItopologicalOperator接口提供了一系列几何图形的集合运算算子,GeometryBag, Multipoint、Point、Polygon、Polyline等组件类都封装了该接口,其中方法Union根据指定的参考几何图形和比较几何图形,返回参考几何图形和比较几何图形的并集,其原型为 HRESULT Union (IGeometry Mother, IGeometry **resultGeom);
返回值HRESULT类型,表明执行结果状态,如果为O表示成功,否则表示失败,参数other IGeometry *型变量,表示比较几何图形;resultGeom IGeometry **型变量,表示返回的并集,在VC++6. O环境下,我国超图公司的SuperMap Objects组件则通过 CsoSpatialOperator接口提供了空间拓扑算子,并将其封装在CsoGeoLine、CsoGeoLineM, CsoGeoRegion, CsoGeoText等组件类中,其中方法Union用于计算两个几何对象的并集,并生成一个新的几何对象,其原型为CsoGeometry CsoSpatialOperator. Union (CsoGeometry ob jOtherGeometry);返回值CsoGeometry 类型,表示新的几何对象,如果为NULL表示失败,否则表示成功,参数objOtherGeometry =CsoGeometry型变量,表示参与求并的另一几何对象,以下通过3个插图说明利用SuperMap Objects组件在等距圆柱投影平面上生成地球椭球面上线要素缓冲区的主要过程,其中,缓冲距为1.5海里,图1中实心点为原始顶点,其以度为单位按(纬度、经度)形式表示的坐标自左到右分别为(57.394402,120. 489263),(58.263160,121. 687429),(57.387827,122. 485861), (57. 903221,123. 667414);空心点为加密内插顶点(每5000米内插一个点),1、2原始顶点之间的加密内插顶点的坐标为(57. 430789、120. 537996),(57. 467157、120. 586829), (57.503505, 120.635756), (57. 539833, 120.684783), (57. 576143, 120.733906), (57.612434,120.783128), (57.648705,120.832448), (57. 684957,120. 881866), (57.721188,120. 931383), (57.757402,120. 980998), (57.793595,121. 0307213), (57.829767,121.080528), (57. 865921,121. 130443), (57.902054,121. 180457), (57.938168, 121.230573), (57.974260, 121. 280789), (58.010335, 121. 331106), (58. 046388,121. 381524), (58. 082421,121. 432044), (58. 118433,121. 482666), (58. 154426,121. 53389),(58. 190397,121. 584217),(58. 226350,121. 635146),2、3 原始顶点之间的加密内插顶点的坐标为(58. 222907、121. 725110),(58. 182642、121. 762708), (58. 142367, 121.800220), (58. 102080,121.837647), (58.061783,121. 874990), (58.021472,121.912250), (57. 981153,121. 949425), (57.940822,121.986517), (57. 900478, 122. 023526), (57. 860125, 122. 060451), (57. 819762, 122. 097295), (57.779386, 122. 134056), (57.738999, 122. 170734), (57.698603, 122.207333), (57.658194, 122. 243849), (57.617777, 122. 280284), (57.577347, 122. 316638), (57.536907,122.352912),(57.496456,122.389105),(57.455994,122.425218),(57. 415523、122. 461252),3、4原始顶点之间的加密内插顶点的坐标为(57. 416443、 122.549945), (57.445029,122. 614131), (57.473581,122. 678417), (57.502100, 122.742802),(57.530586,122.807288),(57.559038,122.871874),(57.587459、 122.936563), (57.615846,123. 001351), (57.644198,123. 066240), (57.672519, 123. 131231), (57.700805, 123. 196323), (57.729057, 123. 261517), (57.757275, 123. 326812), (57. 785461, 123. 392208), (57. 813611, 123. 457706), (57. 841729、 123. 523308),(57. 869812,123. 589012);如图 4 所示即为利用 Arc Objects 组件提供的 Union方法在墨卡托投影平面上生成的地球椭球面上线要素的缓冲区,其中,线要素5个原始顶点的坐标自左到右分别为(80. 985717、-47. 870009),(84. 544953、-29. 694633), (81. 415986、-14. 548422),(85. 004481,6. 584150),(82. 625294,30. 818086);缓冲距为 20000米,如图5所示即为利用SuperMap Objects组件提供的Union方法在墨卡托投影平面上生成的地球椭球面上线要素的缓冲区,其中,线要素5个原始顶点的坐标自左到右分别为(84. 377886、61. 759633),(81.285814、72. 650481),(84.117675、85. 777197), (80. 675369、106. 332769),(85. 419628、126. 671967);缓冲距为 20000 米。
本发明直接利用通用GIS组件Arc Objects和SuperMap Objects所提供的多边形并集生成功能,大大简化了生成地球椭球面上线要素缓冲区的过程,为具有GIS 二次开发能力的用户提供了一种十分便捷、有效的在任一地图投影平面上生成地球椭球面上线要素缓冲区的方法,利用本发明可以为海洋划界提供一种生成高精度单边和双边海洋界限的有效技术手段,对依法维护国家海洋权益具有重要的意义。
权利要求
1.一种基于Gis组件的地球椭球面上线要素缓冲区生成方法,其特征在于,包括以下步骤a、通过大地线内插模型确定出经加密后的地球椭球面上线要素的各顶点;b、通过椭球大地计算公式计算出以地球椭球面上线要素两端点和经加密后的各顶点为圆心、缓冲距为半径的大地圆;C、通过椭球大地计算公式解算出以地球椭球面上线要素经加密后的各相邻顶点之间的线段为公共底边,其两侧以缓冲距为高的大地矩形;d、将步骤b和步骤c中建立的所有大地圆和大地矩形,利用CIS组件进行并集生成处理,得到的多边形即为地球椭球面上线要素缓冲区。
2.根据权利要求1所述的一种基于GIS组件的地球椭球面上线要素缓冲区生成方法, 其特征在于步骤a中未经大地线内插模型加密的地球椭球面上线要素的各顶点坐标为 (bl,11),(b2,12),…,(bm, lm),则经大地线内插模型加密后的地球椭球面上线要素的各顶点坐标为(Bi,Li),(B2,L2),…,(Bn,Ln),其中,η 彡 m。
3.根据权利要求1所述的一种基于GIS组件的地球椭球面上线要素缓冲区生成方法, 其特征在于所述步骤b中首先将地球椭球面上线要素两端点和各顶点视为独立的点要素,然后分别建立其在地球椭球面上的大地圆。
4.根据权利要求1所述的一种基于GIS组件的地球椭球面上线要素缓冲区生成方法, 其特征在于所述步骤c中地球椭球面上线要素经加密后的各相邻顶点之间的线段为小段大地线,按大地问题正解法分别从每一小段大地线两端点出发,求方位角与其成90°和/ 或270°距离为缓冲区半径的左侧和右侧平行线点位之经纬度坐标,并对经纬度坐标进行配对连接形成所需的每一个大地矩形。
全文摘要
本发明公开了一种基于GIS组件的地球椭球面上线要素缓冲区生成方法,包括以下步骤a、确定出经加密后的地球椭球面上线要素的各顶点;b、计算出大地圆;c、计算出大地矩形;d、将步骤b和步骤c中建立的所有大地圆和大地矩形,利用CIS组件进行并集生成处理,得到的多边形即为地球椭球面上线要素缓冲区。本发明大大简化了生成地球椭球面上线要素缓冲区的过程,为具有GIS二次开发能力的用户提供了一种十分便捷、有效的在任一地图投影平面上生成地球椭球面上线要素缓冲区的方法,为海洋划界提供一种生成高精度单边和双边海洋界限的有效技术手段,对依法维护国家海洋权益具有重要的意义。
文档编号G09B29/00GK102411872SQ20111023277
公开日2012年4月11日 申请日期2011年8月15日 优先权日2011年8月15日
发明者彭认灿, 董箭 申请人:彭认灿