CN107193856B - 一种基于安卓***和jts库切割矢量图斑的方法 - Google Patents
一种基于安卓***和jts库切割矢量图斑的方法 Download PDFInfo
- Publication number
- CN107193856B CN107193856B CN201710009361.6A CN201710009361A CN107193856B CN 107193856 B CN107193856 B CN 107193856B CN 201710009361 A CN201710009361 A CN 201710009361A CN 107193856 B CN107193856 B CN 107193856B
- Authority
- CN
- China
- Prior art keywords
- inner ring
- ring
- tangent line
- circle
- cutting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/56—Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于安卓***和JTS库切割矢量图斑的方法,包括以下步骤:S1:画一条切线,通过JTS库将图斑和切线转换为JTS形式,将选中的被切图斑自分解成一个外环和多个内环,所画的切线以自相交处的交点为分割点,将切线分解成一条非自相交的切线和多个单环切线;S2:判断环线中每条环切线与图斑中每个内环的关系,环切线与内环的关系包括包含、被包含、相交和相离,并做相应处理,将满足条件的环切线添加到内环集中。本发明可在安卓版森林资源调查软件中实现矢量图形编辑功能,能提高小班勾绘的精度和效率;减少工作环节和人为误差,优化调查人员的工作流程,提高森林资源调查的效率。
Description
技术领域
本发明涉及地理信息***矢量空间数据处理技术领域,尤其涉及一种基于安卓***和JTS库切割矢量图斑的方法。
背景技术
小斑是森林资源调查、规划、设计与经营的基本单位,为了能够更直观形象地反应林地的形状、空间位置及面积大小,并参与森林资源蓄积量计算,在地理信息***的矢量空间数据中用图斑表示。
JTS库(Java Topology Suite),是一个开源的Java应用程序接口,使用精确的模型和强大的几何算法,实现了一套核心的空间数据操作,可用于如GIS地理信息***等基于矢量的地理学软件,也可被视做一个为计算几何提供算法的多用途的函数库。它提供点、多点、线、线性环、多线、面、多面、集合等空间数据模型,计算相等、脱节、相交、接触、交叉、内含、包含、重叠的空间关系,处理交集、合并、差异、对称差异的叠加操作,Buffer缓冲区分析,多边化、合并一组线等操作。JTS库以WKT(Well-Known Text)格式作为IO流,图斑的WKT形式为Polygon((外环),(内环1),(内环2),…),每个环至少包含四个点,其顶点形式为
x1 y1 z1,x2 y2 z2,...,xi yi zi,...,xn yn zn,x1 y1 z1(n≥3),外环的顶点为顺时针排列,内环为逆时针排列。
在Android版森林资源调查软件开发中,实现矢量图斑编辑是其一难点。由于Android***中单个应用的内存限制,复杂的矢量图斑,成百上千的顶点,在移动设备上实现编辑图斑更加困难。现市场上的ArcGIS for Android、MapZone Mobile等部分GIS开发平台,已实现了对矢量图斑的切割。但这些平台收费较高,使用成本也高;基于这些平台做二次开发,其不开源的特征导致项目功能扩展、界面风格、数据结构等方面受到诸多限制。
发明内容
基于背景技术存在的技术问题,本发明提出了一种基于安卓***和JTS库切割矢量图斑的方法。
本发明提出的一种基于安卓***和JTS库切割矢量图斑的方法,包括以下步骤:
S1:画一条切线,通过JTS库将图斑和切线转换为JTS形式,将选中的被切图斑自分解成一个外环和多个内环,所画的切线以自相交处的交点为分割点,将切线分解成一条非自相交的切线和多个单环切线;
S2:判断环线中每条环切线与图斑中每个内环的关系,环切线与内环的关系包括包含、被包含、相交和相离,并做相应处理,将满足条件的环切线添加到内环集中;
S3:判断图斑的外环与内环集中每个内环的是否符合相交、被包含、相离和包含关系,外环中无内环,则添加所有的环切线到内环集,将不满足条件的内环从内环集中移除;
S4:使用切线集中的每条短切割线,外切割内环集中的每个内环,使用切线集中的每条短切割线,内切割图斑的外环,使用内环集中每个内环,内切割上一步的结果集;
S5:最后将所有结果,以顺时针排列外环顶点、逆时针排列内环顶点的方式,重新生成图斑并更新至Shapefile矢量文件。
优选地,所述S1中被切图斑自分解的外环和内环均为无内环的简单环。
优选地,所述S2中环切线与内环相离,环切线添加至内环集中,环切线与内环相交,计算两个环的并集,并集的外环替代内环,并集的内环作为结果,环切线与内环为被包含关系,则环切线无效,环切线与内环为包含关系,则添加环切线和内环到结果集,环切线替代内环。
优选地,所述S3中图斑的外环与内环集中的内环为包含关系,则保留内环,图斑的外环与内环集中的内环为被包含或相离关系,内环集中内环为无效内环,无效内环从内环集中移除,图斑的外环与内环集中的内环为相交关系,内环使环切线,添加内环到结果集,内环不是环切线,则外环与内环的差集做为外环。
优选地,所述S4中非自相交切线外切割每个内环,返回图斑中面积最大的作为内环,其他的添加到结果集中。
优选地,所述S5中图斑重新生成并更新至Shapefile矢量文件时,删除被切图斑,保存结果图斑。
本发明的有益效果为:本发明可在安卓版森林资源调查软件中实现矢量图形编辑功能,能提高小班勾绘的精度和效率;减少工作环节和人为误差,优化调查人员的工作流程,提高森林资源调查的效率,降低作业成本,使智能移动终端更好地为森林资源信息采集工作服务;本发明也可应用于地理信息***的相关行业,如国土测绘、城市规划和建设、道路交通管理、地震灾害和损失估计等。
附图说明
图1为本发明提出的一种基于安卓***和JTS库切割矢量图斑的方法的切割矢量图斑的实现步骤;
图2为本发明提出的一种基于安卓***和JTS库切割矢量图斑的方法的切线外切割环的流程图;
图3为本发明提出的一种基于安卓***和JTS库切割矢量图斑的方法的面状图斑的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
实施例,参照图1-3,一种基于安卓***和JTS库切割矢量图斑的方法,以加载浙江省松阳县安岱后村的森林资源二类调查的矢量空间数据为例,文件大小1.80MB,图斑数量209个,shapefile格式;Android移动设备采用Samsung GT-N5100,Android4.1操作***,四核1.6GHz处理器,8寸屏幕,1831MB内存,1280*800的分辨率。
在Android***上,使用JTS开源库实现矢量图斑的方法如下:
(1)切割对象初始化
首先,选择一个被切图斑并在画一条矢量切割线,将所画的线和被切割的图斑转换成JTS形式。
其次,切线自分解。所画的切线可能是一条简单的非自相交线,也可能是复杂的自相交线,以自相交处的交点为分割点,将切线分解成多条非自相交的短切线,若有四条以上的短切线相交于一点时表明切线无法依序自分解,切割图斑失败;将每条起点和终点相同的短切线视做一条单环切线,其它的短切线依序连接成一条非自相交的切线。
再次,被切图斑的自分解。自分解图斑是将由多个环构成的图斑,分解成一个外环加多个内环,每个环都是一个无内环的单环。
(2)判断每条环切线与图斑内环的关系
环切线与内环有包含、被包含、相离、相交四种关系。当环切线包含内环,构建以环切线为外环、图斑的内环为内环的新图斑Polygon(环切线,内环)作为切割结果的一个图斑,并用环切线替代内环;当内环包含环切线时,说明环切线无效;相交时,计算环切线和内环的并集,并集的外环替代这个内环,并集的内环添加到结果图斑集;相离时,将环切线视做一个内环,添加内环集中。若被切图斑没有内环,则将所有的环切线添加到内环集,添加被外环包含的环切线到结果图斑集。
(3)判断外环与每个内环的关系
当内环在外环内里,停留这个内环;当外环与内环的关系为被包含或相离时,表明内环是无效的,应从内环集中移除;当相交时,说明内环有一部分不在被切图斑内,需计算外环差异内环的差集替代外环,若内环为源生环切线时,将内环添加到结果图斑集中。
(4)使用非自相交的切线外切割每个内环。
外切割是指一条在环外且两端点在环上的线,与环形成的两个封闭区域。使用非自相交的切线外切割每个内环时,使用差异运算,根据环与切线的交点将切线分解成多条短切线,若每条短切线的两端点在环上且不被环包含,满足外切割的条件;计算出两端点在环上点集中的位置,遍历环的所有点,以两端点为界,切线与环形成两个结果环;面积较大的结果环替代被切环,继续下一条短切线的外切割,面积较小的添加到结果图斑集中。
(5)使用非自相交的切线内切割外环
使用非自相交的切线内切割外环,使用差异运算以与外环的交点将切线分解成多条短切线,每条在环内且两端点在环上的短切线,与外切割相同的方式将环拆分成两个环;下一条满足条件的短切线,以内切割的方式切线上一条的结果。
(6)每个内环去切割上一步的结果集
将内环集中每个内环,判断与上一步结果集中环的关系,若相交时,将内环看成一条非自相交的切线,以内切割的方式,将结果集中的环切割成两个环;若包含内环切线时,使用差异运算计算两个环的差值。
(7)将所有的结果重新生成图斑。
将切线矢量图斑的结果集中每一个结果,自分解成一个外环和多个内环,根据Paul Bourke判断面是顺时针还是逆时针的方法,面上每一个点使用公式
(xi-xi-1)×(yi+1-yi)-(yi-yi-1)×(xi+1-xi)
计算,统计出现正值和负值的次数,若出现的正值较多时,表明此面是逆时针;若负值较多,表明是顺时针;若相等时,无法判断。根据这一判定原则,将不满足条件的环进行反转,确保图斑外环的顶点为顺时针排列,内环为逆时针排列。
(8)保存切割图斑的结果。
将切割后得要的结果图斑,与被切图斑的属性,写入Shapefile文件,并删除被切图斑信息,保存切割的结果。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (5)
1.一种基于安卓***和JTS库切割矢量图斑的方法,其特征在于,包括以下步骤:
S1:画一条切线,通过JTS库将图斑和切线转换为JTS形式,将选中的被切图斑自分解成一个外环和多个内环,所画的切线以自相交处的交点为分割点,将切线分解成一条非自相交的切线和多个单环切线;
S2:判断环线中每条环切线与图斑中每个内环的关系,环切线与内环的关系包括包含、被包含、相交和相离,并做相应处理,相离时,将环切线视做一个内环,添加到内环集中;若被切图斑没有内环,则将所有的环切线添加到内环集;
S3:判断图斑的外环与内环集中每个内环的是否符合相交、被包含、相离和包含关系,外环中无内环,则添加所有的环切线到内环集,当外环与内环的关系为被包含或相离时,将内环从内环集中移除;
S4:使用切线集中的每条短切割线,外切割内环集中的每个内环,使用切线集中的每条短切割线,内切割图斑的外环,使用内环集中每个内环,内切割S3的结果集;
S5:最后将所有结果,以顺时针排列外环顶点、逆时针排列内环顶点的方式,重新生成图斑并更新至Shapefile矢量文件。
2.根据权利要求1所述的一种基于安卓***和JTS库切割矢量图斑的方法,其特征在于,所述S1中被切图斑自分解的外环和内环均为无内环的简单环。
3.根据权利要求1所述的一种基于安卓***和JTS库切割矢量图斑的方法,其特征在于,所述S2中环切线与内环为相离关系,环切线添加至内环集中,环切线与内环为相交关系,计算两个环的并集,并集的外环替代内环,并集的内环作为结果,环切线与内环为被包含关系,则环切线无效,环切线与内环为包含关系,则添加环切线和内环到结果集,环切线替代内环。
4.根据权利要求1所述的一种基于安卓***和JTS库切割矢量图斑的方法,其特征在于,所述S3中图斑的外环与内环集中的内环为包含关系,则保留内环,图斑的外环与内环集中的内环为被包含或相离关系,内环集中内环为无效内环,无效内环从内环集中移除,图斑的外环与内环集中的内环为相交关系,内环是环切线,添加内环到结果集,内环不是环切线,则外环与内环的差集做为外环。
5.根据权利要求1所述的一种基于安卓***和JTS库切割矢量图斑的方法,其特征在于,所述S4中非自相交切线外切割每个内环,返回图斑中面积最大的作为内环,其他的添加到结果集中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710009361.6A CN107193856B (zh) | 2017-01-06 | 2017-01-06 | 一种基于安卓***和jts库切割矢量图斑的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710009361.6A CN107193856B (zh) | 2017-01-06 | 2017-01-06 | 一种基于安卓***和jts库切割矢量图斑的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107193856A CN107193856A (zh) | 2017-09-22 |
CN107193856B true CN107193856B (zh) | 2020-06-26 |
Family
ID=59870852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710009361.6A Active CN107193856B (zh) | 2017-01-06 | 2017-01-06 | 一种基于安卓***和jts库切割矢量图斑的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107193856B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162650B (zh) * | 2019-04-18 | 2020-10-27 | 中国测绘科学研究院 | 一种兼顾局部最优与整体面积平衡的小图斑融解方法 |
CN111090657B (zh) * | 2019-10-28 | 2024-04-12 | 吉奥时空信息技术股份有限公司 | 一种矢量瓦片自动更新与即时服务*** |
CN111915614B (zh) * | 2020-08-12 | 2024-03-22 | 苏州中科蓝迪软件技术有限公司 | 一种矢量地图生产方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009064779A3 (en) * | 2007-11-14 | 2009-09-03 | Microsoft Corporation | Tiled projections for planar processing of round earth data |
CN104298734A (zh) * | 2014-09-30 | 2015-01-21 | 东南大学 | 土地利用现状变更调查中变更图斑移动更新方法 |
CN104616356A (zh) * | 2014-12-31 | 2015-05-13 | 中国林业科学研究院资源信息研究所 | 一种小班边界三维可视化编辑方法 |
CN104679822A (zh) * | 2014-12-30 | 2015-06-03 | 北京市测绘设计研究院 | 一种地理国情外业调绘方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7092957B2 (en) * | 2002-01-18 | 2006-08-15 | Boundary Solutions Incorporated | Computerized national online parcel-level map data portal |
-
2017
- 2017-01-06 CN CN201710009361.6A patent/CN107193856B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009064779A3 (en) * | 2007-11-14 | 2009-09-03 | Microsoft Corporation | Tiled projections for planar processing of round earth data |
CN104298734A (zh) * | 2014-09-30 | 2015-01-21 | 东南大学 | 土地利用现状变更调查中变更图斑移动更新方法 |
CN104679822A (zh) * | 2014-12-30 | 2015-06-03 | 北京市测绘设计研究院 | 一种地理国情外业调绘方法 |
CN104616356A (zh) * | 2014-12-31 | 2015-05-13 | 中国林业科学研究院资源信息研究所 | 一种小班边界三维可视化编辑方法 |
Non-Patent Citations (1)
Title |
---|
基于Android的森林资源数据外业采集***研建;朱煜;《中国优秀硕士学位论文全文数据库农业科技辑》;20150115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107193856A (zh) | 2017-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10504284B2 (en) | Method for automatic modeling of complex buildings with high accuracy | |
Peterson et al. | STARS: An ArcGIS toolset used to calculate the spatial information needed to fit spatial statistical models to stream network data | |
CN107193856B (zh) | 一种基于安卓***和jts库切割矢量图斑的方法 | |
CN106898045B (zh) | 一种基于sgog瓦块的大区域真三维地理场景自适应构建方法 | |
CN103679804A (zh) | 一种地下管线数据三维模型自动构建***及其构建方法 | |
CN108229740B (zh) | 一种商圈边界的确定方法、装置、服务器及存储介质 | |
CN108717729A (zh) | 一种面向虚拟地球的地形多尺度tin在线可视化方法 | |
CN114398691B (zh) | 一种轮胎模具二维视图智能设计方法及设备 | |
Tienaah et al. | Contextual douglas-peucker simplification | |
CN110489511B (zh) | 等高线接边高程错误修正方法、***及电子设备和介质 | |
CN104715507A (zh) | 一种基于曲面片的三维地理实体自动构建方法 | |
CN112598724A (zh) | 一种改进的基于tin的面状要素中心线提取方法 | |
US20190243336A1 (en) | Geometric modelling for facilitating simulation for manufacturing operations | |
CN109949421B (zh) | 三角网切割方法及装置 | |
JP2010032379A (ja) | 基準気流場データ作成装置、方法、プログラム、および物質拡散状況予測システム | |
CN107644139B (zh) | 一种从cad模型到cae模型的属性映射方法 | |
US11449566B2 (en) | Methods and systems for processing geospatial data | |
CN113066151B (zh) | 一种地图数据处理方法、装置、设备及存储介质 | |
Huang et al. | Neighborhood query and analysis with GeoSAL, a spatial database language | |
Renjian et al. | Line simplification based on geographic-feature constraint | |
KR20210049468A (ko) | 구형 표면을 동일면적의 격자로 분할하는 방법 | |
Zhang et al. | Comparison of 4 vector polygon clipping algorithms in the spatial overlay analysis of GIS using simple feature model | |
CN112445838B (zh) | 一种面向空间数据的高效空间k核挖掘方法 | |
CN110379288B (zh) | 路口拓扑链接线的绘制方法及*** | |
CN113066148B (zh) | 一种地图数据处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |