CN110110024A - 一种大容量vct文件导入空间数据库方法 - Google Patents

一种大容量vct文件导入空间数据库方法 Download PDF

Info

Publication number
CN110110024A
CN110110024A CN201910357079.6A CN201910357079A CN110110024A CN 110110024 A CN110110024 A CN 110110024A CN 201910357079 A CN201910357079 A CN 201910357079A CN 110110024 A CN110110024 A CN 110110024A
Authority
CN
China
Prior art keywords
line
read
data
current
text
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.)
Granted
Application number
CN201910357079.6A
Other languages
English (en)
Other versions
CN110110024B (zh
Inventor
王鸣飞
郭胜涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southeast University
Original Assignee
Southeast University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Southeast University filed Critical Southeast University
Priority to CN201910357079.6A priority Critical patent/CN110110024B/zh
Publication of CN110110024A publication Critical patent/CN110110024A/zh
Application granted granted Critical
Publication of CN110110024B publication Critical patent/CN110110024B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种大容量VCT文件导入空间数据库的方法,其基本思想是:导入VCT文件之前,先建立一个记录要素目标标识码、要素类型、空间几何数据存储行号和属性存储行号的索引表。当执行VCT文件导入时,将VCT文件复制一个副本,同时打开原始和副本两个文件,然后通过遍历索引表,根据要素的几何数据存储行号和属性存储行号分别从两个文件中读取并解析数据,将解析的结果一并写入到空间数据库中。本发明能够彻底解决大容量VCT文件导入到空间数据时受内存限制的问题,有效规避了由于VCT文件和一般空间地理数据库存储特点差异导致的数据交换效率低下的风险,为实际的数据转换工作提供一种可靠、高效的方法,在地理信息系统的应用中具有重要的实际意义。

Description

一种大容量VCT文件导入空间数据库方法
技术领域
本发明属于地理信息系统(GIS)数据交换领域,具体涉及一种大容量VCT文件导入空间数据库方法。
背景技术
国标《GB/T 17798-2007 地理空间数据交换格式》规定,用于地理信息系统间数据交换采用矢量数据文件被称为VCT文件,后缀名是*.vct,空间数据以明文文本存储在一个VCT文件中。
VCT文件存储的内容可分为八个部分,如附图1所示,包括:1)描述数据的基本信息,如数据范围、坐标维数、数学基础信息的文件头;2)定义所包含空间数据分类的要素类型参数;3)定义属性数据的结构;4)空间几何数据;5)注记数据;6)拓扑数据;7)属性数据;8)图形展现数据。上述八个部分内容按照先后次序存放在VCT文件中。
用来存储空间数据的数据库一般称为地理空间数据库、时空数据库或空间数据库。业界流行的Oracle、SQLServer等关系型数据库,加上空间数据选件或空间数据库引擎后就具备了空间数据库的特性,满足存储地理空间数据的要求。空间数据库与VCT文件相比较具有两个差别:1)VCT文件中空间数据按照点、线、面、体和符合要素的先后次序依次存储,空间数据库中空间数据是以表形式无序分散存储,一般一个表只存储一种几何类型,但同一种几何类型可分为多表存储;2)由于空间数据库中要素可以用一条记录来表达,因此其几何数据与属性数据多数情况下是合并的,而VCT文件中,按照格式定义,要素的几何数据和属性数据必须存储在不同的位置,且相对地址相差甚远。
当需要通过计算机程序将VCT文件导入到空间数据库中时,一般采用两种思路实现:
第一种思路:1)依次遍历点、线、面等空间几何数据记录。2)读取几何数据记录的目标标识码,解析几何信息,在空间数据库对应的表中插入一条要素记录,写入目标标识码和几何信息。3)直到遍历完所有的空间几何数据。4)依次遍历属性表记录。5)读取属性数据的目标标识码,读取各个字段的属性数据,在空间数据库对应的表中通过目标标识码关联更新要素记录的属性字段值。6)直到遍历完所有的属性表记录。
上述思路存在明显的效率问题,当所有空间几何数据完成读取时,所有的要素已经在目标数据库表中被创建,接下来读取属性数据过程中,需要反复执行关联更新语句,算法复杂度为平方阶,当VCT文件较大时,将需要较长的时间才能完成数据导入。
第二种思路可以在第一种思路上加以改进,在遍历空间几何数据时,暂时不在数据库表中创建要素记录,先将要素的几何信息存储在内存中,当读取属性数据时,将读取到的属性信息与内存中的要素进行挂接,直到所有属性数据读取完毕后,再将内存中的要素批量写入到空间数据库表中。
第二种思路可以有效降低执行数据库查询操作的时间损耗,但是需要大量的内存作为要素临时存放区域。经测试,当文件超过600M时,用这种方法导入VCT文件就会产生内存溢出的异常情况。
发明内容
为解决上述问题,本发明公开了一种大容量VCT文件导入空间数据库方法,其基本思想是:导入VCT文件之前,先建立一个记录要素目标标识码、几何类型、空间几何数据存储行号和属性存储行号的索引表。当执行VCT文件导入时,将VCT文件复制一个副本,同时打开原始和副本两个文件,然后通过遍历索引表,根据要素的几何数据存储行号和属性存储行号分别从两个文件指定的行号读取并解析数据,将解析的结果一并写入到空间数据库中。
为达到上述目的,本发明的技术方案如下:
一种大容量VCT文件导入空间数据库方法,包括以下步骤:
1)定义一个存储要素目标标识码、几何类型、几何数据存储行号和属性数据存储行号的索引表,结构如附图3所示;
2)打开预导入的VCT文件,对VCT文件进行逐行读取;
3)依次遍历点、线、面、体状要素和聚合对象要素的空间几何数据;
4)读取要素的目标标识码,连同要素几何类型和当前的文件的行号信息写到索引表中;
5)循环上述步骤直至空间几何数据读取完毕;
6)遍历属性数据中每个属性表的属性数据记录;
7)读取要素的目标标识码,当前的文件的行号值;通过目标标识码作为匹配条件,将当前的文件行号值写入到索引表中已经存在记录的属性数据存储行号域;
8)循环上述步骤直至所有的属性数据记录和属性表读取完毕;
9)关闭当前VCT文件,完成索引表创建;
10)将预导入的VCT文件复制一个副本,同时打开原始和副本两个文件;
11)依次遍历已经建立的索引表记录;
12)读取要素的目标标识码,几何类型,空间几何数据行号,属性数据行号。通过行号分别在两个文件中进行定位,然后读取空间数据和属性数据,将解析后的空间数据和属性数据写入到目标空间数据库表中;
13)循环上述步骤,直到索引表记录遍历完毕;
14)关闭两个文件,导入VCT文件导入。
本发明的有益效果是:
本发明与现有的技术相比较,能够彻底解决大容量VCT文件导入到空间数据时受内存限制的问题,有效规避了由于VCT文件和一般空间地理数据库存储特点差异导致的数据交换效率低下的风险,为实际的数据转换工作提供一种可靠、高效的方法,在地理信息系统的应用中具有重要的实际意义。
附图说明
图1为大容量VCT文件导入空间数据方法实现步骤流程图。
图2为VCT文件存储结构图。
图3为索引表结构。
具体实施方式
下面结合附图和具体实施方式,进一步阐明本发明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。
本发明所述的一种大容量VCT文件导入空间数据库方法,是在Microsofit VisualStudio 2010集成开发环境下,用C#编程语言开发一个运行在Windows平台的桌面应用程序来实现。应用程序通过调用ArcObjects开发组件来实现空间要素的写入。其中导入的目标空间数据库采用ArcGIS的Geodatabase,存储在Oracle数据库管理系统中。VCT文件选取一个地市的土地利用现状数据作为待导入文件,文件大小约1.5GB。待导入的要素类以第三次全国土地调查颁布的《土地利用现状数据库标准》中规定为准,其中地类图斑要素类中要素个数大于20万条。
(1)存储要素目标标识码、几何类型、几何数据存储行号和属性数据存储行号的索引表用一个“键值对”字典来表达,字典的键是要素的目标标识码,值是一个包含目标标识码、几何类型、几何数据存储行号和属性数据存储行号的结构体。
(2)由于VCT文件是一个文本文件,为了得到要素空间数据存储所在行号和属性数据的存储行号,在后续数据读取过程中实现通过行号定位文件位置的功能,需要预先建立一个行号和文件绝对位置(偏移字节)的对应关系。建立这个对应关系的实施方法是:
1)以流方式打开文件,预先定义一个文件偏移值数组linePosition;
2)读取第一个字节,记录为rByte,判断rByte是否为0,如果其值是0,则表示文件为空,退出程序。如果其值大于0,则做一下循环;
3)如果rByte值是0x0d,则取当前字节后读取一个字节,记录为nextByte;
4)如果nextByte大于0,则做一下循环;
5)如果nextByte值是0x0a,则将当前文件偏移值加入到linePosition中,并退出当前循环;
6)继续向后读取一个字节,记录为nextByte,直到nextByte是0时,退出循环。
7)继续向后读取一个字节,记录在rByte中,如果rByte是0则,退出结束当前子程序。
经过上述步骤后,将得到一个文件偏移值数组linePosition,其内部存储的文件偏移值代表了文件行号是数组下标时对应的文件位置。
(3)遍历点、线、面、体状要素和聚合对象要素的空间几何数据时,由于点、线、面和体的存储结构各不相同,这里给出读取点要素几何数据目标标识码的具体实施方法。
1)以文本方式打开VCT文件;
2)读取第一行文本,记录为变量line;
3)如果line是空字符串则退出程序,否则进行以下循环;
4)如果line的内容是“PointBegin”,则进入以下循环;
5)向后读取一行文本,赋值给line;
6)如果line的值是“PointEnd”,则退出循环,否则执行下列步骤;
7)将当前line的值转为整型值,当前值就是目标标识码,将目标标识码、几何类型和当前文件的行号,写入到索引表中;
8)向后读取一行文本,赋值给line;
9)如果line的内容不是“0”则循环第8)步;
10)向后读取一行文本,赋值给line,返回第6)步;
11)结束点状要素数据的读取。
通过上述步骤,在索引表中建立了目标标识码和空间几何数据存储行号的对应关系。
线、面、体状要素的标识码读取方式与点要素读取类似,只是根据VCT文件格式定义中几何类型存储的不同,需要从一个要素开始向后读取的行数不同而已,此外就是写入索引记录时,存储的几何类型不同。这里不再对每种几何类型的读取实施方法做赘述。
(4)当所有空间几何数据的行号记录完毕后,接下来需要记录属性数据的行号。具体的实施步骤如下:
1)以文本方式打开VCT文件;
2)读取第一行文本,记录为变量line;
3)如果line是空字符串则退出程序,否则进行以下循环;
4)如果line的内容是“AttributeBegin”,则进入以下循环;
5)向后读取一行文本,赋值给line;
6)如果line的值是“AttributeEnd”,则退出循环,否则执行下列步骤;
7)向后读取一行文本,赋值给line;
8)如果line的内容不是“TableEnd”,则执行以下步骤;
9)将当前line的内容转换为整型,这个数值就是要素的目标标识码,通过目标标识码在索引表中定位到对应的记录,如果存在记录,则把当前行号写在属性数据存储行号字段中;
10)向后读取一行文本,赋值给line,返回第8)步;
11)返回第6)步;
12)结束数据的读取。
上述步骤完成后,在索引表中记录了目标标识码、几何类型、空间几何数据存储行号和属性数据存储行号,为后续要素数据从VCT文件中提取几何数据和属性数据建立了依据。
索引表创建后,接下来要将将预导入的VCT文件复制一个副本,同时打开原始和副本两个文件,分别从两个文件读取要素的空间几何数据和属性数据,完成VCT内矢量空间数据导入的具体处理。实施步骤如下:
1)打开两个VCT文件,文件句柄分别记做geoFile和attFile;
2)依次遍历已经建立的索引表记录;
3)读取要素的目标标识码、几何类型、空间几何数据行号和属性数据行号,分别记做MBBSM、geoType、geometryLoc和attributeRowLoc;
4)以geometryLoc为下标从linePosition数组中获得文件位置偏移量记做postion1。
5)将geoFile文件位置定位到postion1,并根据geoType读取空间几何数据(详细实施步骤下文中描述),记做geo;
6)以attributeRowLoc为下标从linePosition数组中获得文件位置偏移量记做postion2;
7)将attFile文件位置定位到postion2,并读取一行属性数据,记录在一个属性数组中att[]中。
8)根据geo和att[]调用ArcObjects中的IFeature接口API,在空间数据库中创建一个要素feature,把geo转换为ArcObjects的Geometry对象,将att[]数组中的数据写入到feature中;
9)直到遍历完所有索引表记录,退出程序。
在上文的第5)步中,对于空间数据的解析,需要根据空间几何类型的不同有所不同。下面分别给出点、线和面状几何要素的解析方法。
点状要素空间几何数据读取步骤:
1)在当前位置读取一行文本,记录为变量line,当前line的内容就是目标标识码;
2)向后读取一行文本,赋值给line,当前line的内容就是要素类型编码;
3)向后读取一行文本,赋值给line,当前line内容为图形展现码;
4)向后读取一行文本,赋值给line,当前line内容为点类型;
5)向后读取一行文本,赋值给line,当前line内容为点坐标串,将当前字符串按照分隔符分隔,所获得的子字符串转为浮点类型,即点空间坐标值;
6)向后读取一行文本,赋值给line,当前line内容为结束符“0”;
7)完成点状要素的解析。
线状要素空间几何数据读取步骤:
1)在当前位置读取一行文本,记录为变量line,当前line的内容就是目标标识码;
2)向后读取一行文本,赋值给line,当前line的内容就是要素类型编码;
3)向后读取一行文本,赋值给line,当前line内容为图形展现码;
4)向后读取一行文本,赋值给line,当前line内容为线类型;
5)向后读取一行文本,赋值给line,当前line内容为线段数,转换为整型记做partCount;
6)针对线段数循环执行下列第7)~10)步partCount次;
7)向后读取一行文本,赋值给line
8)向后读取一行文本,赋值给line,当前line的内容为点数,转换为整型后记做pointCount;
9)根据点数循环执行下列步骤pointCount次;
10)向后读取一行文本,赋值给line,当前line内容为点坐标串,将当前字符串按照分隔符分隔,所获得的子字符串转为浮点类型,即点空间坐标值。;
11)向后读取一行文本,赋值给line,当前line内容为结束符“0”;
12)完成线状要素的解析。
面状要素空间几何数据读取步骤:
1)在当前位置读取一行文本,记录为变量line,当前line的内容就是目标标识码;
2)向后读取一行文本,赋值给line,当前line的内容就是要素类型编码;
3)向后读取一行文本,赋值给line,当前line内容为图形展现码;
4)向后读取一行文本,赋值给line,当前line内容为面类型,这里类型值以折线“100”为例;
5)向后读取一行文本,赋值给line,当前line内容为当前面要素面状几何体的标注点坐标串;
6)向后读取一行文本,赋值给line,当前line内容为当前面要坐标表达类型,当前以间接坐标“21”为例;
7)向后读取一行文本,赋值给line,当前line内容为弧段数,转换为整型记做arcCount;
8)根据环数依次先后读取数据,直到将所有弧段的目标标识码读取完毕,将弧段的目标标识码记录在一个数组arcMBBMS[]中;
9)向后读取一行文本,赋值给line,当前line内容为结束符“0”;
10)遍历arcMBBMS[],取出线要素的目标标识码,按照上文中提到的线状要素解析办法,将线要素的几何信息读取出来,然后将所有的线要素连接就是面状要素的空间坐标信息;
11)完成面状要素的解析。
本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。

Claims (7)

1.一种大容量VCT文件导入空间数据库方法,其特征在于:包括以下步骤:
步骤一:定义一个存储要素目标标识码、几何类型、几何数据存储行号和属性数据存储行号的索引表;
步骤二:打开预导入的VCT文件,对VCT文件进行逐行读取;
步骤三:依次遍历点、线、面、体状要素和聚合对象要素的空间几何数据;
步骤四:读取要素的目标标识码,连同要素几何类型和当前的文件的行号信息写到索引表中;
步骤五:循环上述步骤直至空间几何数据读取完毕;
步骤六:遍历属性数据中每个属性表的属性数据记录;
步骤七:读取要素的目标标识码,当前的文件的行号值;通过目标标识码作为匹配条件,将当前的文件行号值写入到索引表中已经存在记录的属性数据存储行号域;
步骤八:循环上述步骤直至所有的属性数据记录和属性表读取完毕;
步骤九:关闭当前VCT文件,完成索引表创建;
步骤十:将预导入的VCT文件复制一个副本,同时打开原始和副本两个文件;
步骤十一:依次遍历已经建立的索引表记录;
步骤十二:读取要素的目标标识码、几何类型、空间几何数据行号、属性数据行号;通过行号分别在两个文件中进行定位,然后读取空间数据和属性数据,将解析后的空间数据和属性数据写入到目标空间数据库表中;
步骤十三:循环上述步骤,直到索引表记录遍历完毕;
步骤十四:关闭两个文件,导入VCT文件导入。
2.根据权利要求1所述的一种大容量VCT文件导入空间数据库方法,其特征在于:步骤一所述的存储要素目标标识码、几何类型、几何数据存储行号和属性数据存储行号的索引表用一个“键值对”字典来表达,字典的键是要素的目标标识码,值是一个包含目标标识码、几何类型、几何数据存储行号和属性数据存储行号的结构体。
3.根据权利要求1所述的一种大容量VCT文件导入空间数据库方法,其特征在于:步骤二:由于VCT文件是一个文本文件,为了得到要素空间数据存储所在行号和属性数据的存储行号,在后续数据读取过程中实现通过行号定位文件位置的功能,需要预先建立一个行号和文件绝对位置的对应关系,建立这个对应关系的实施方法是:
1)以流方式打开文件,预先定义一个文件偏移值数组linePosition;
2)读取第一个字节,记录为rByte,判断rByte是否为0,如果其值是0,则表示文件为空,退出程序;如果其值大于0,则做一下循环;
3)如果rByte值是0x0d,则取当前字节后读取一个字节,记录为nextByte;
4)如果nextByte大于0,则做一下循环;
5)如果nextByte值是0x0a,则将当前文件偏移值加入到linePosition中,并退出当前循环;
6)继续向后读取一个字节,记录为nextByte,直到nextByte是0时,退出循环;
7)继续向后读取一个字节,记录在rByte中,如果rByte是0则,退出结束当前子程序;
经过上述步骤后,将得到一个文件偏移值数组linePosition,其内部存储的文件偏移值代表了文件行号是数组下标时对应的文件位置。
4.根据权利要求1所述的一种大容量VCT文件导入空间数据库方法,其特征在于:步骤四:遍历点、线、面、体状要素和聚合对象要素的空间几何数据时,由于点、线、面和体的存储结构各不相同,下面给出读取点要素几何数据目标标识码的具体实施方法:
1)以文本方式打开VCT文件;
2)读取第一行文本,记录为变量line;
3)如果line是空字符串则退出程序,否则进行以下循环;
4)如果line的内容是“PointBegin”,则进入以下循环;
5)向后读取一行文本,赋值给line;
6)如果line的值是“PointEnd”,则退出循环,否则执行下列步骤;
7)将当前line的值转为整型值,当前值就是目标标识码,将目标标识码、几何类型和当前文件的行号,写入到索引表中;
8)向后读取一行文本,赋值给line;
9)如果line的内容不是“0”则循环第8)步;
10)向后读取一行文本,赋值给line,返回第6)步;
11)结束点状要素数据的读取;
通过上述步骤,在索引表中建立了目标标识码和空间几何数据存储行号的对应关系。
5.根据权利要求1所述的一种大容量VCT文件导入空间数据库方法,其特征在于:步骤七:当所有空间几何数据的行号记录完毕后,接下来需要记录属性数据的行号,具体的实施步骤如下:
1)以文本方式打开VCT文件;
2)读取第一行文本,记录为变量line;
3)如果line是空字符串则退出程序,否则进行以下循环;
4)如果line的内容是“AttributeBegin”,则进入以下循环;
5)向后读取一行文本,赋值给line;
6)如果line的值是“AttributeEnd”,则退出循环,否则执行下列步骤;
7)向后读取一行文本,赋值给line;
8)如果line的内容不是“TableEnd”,则执行以下步骤;
9)将当前line的内容转换为整型,这个数值就是要素的目标标识码,通过目标标识码在索引表中定位到对应的记录,如果存在记录,则把当前行号写在属性数据存储行号字段中;
10)向后读取一行文本,赋值给line,返回第8)步;
11)返回第6)步;
12)结束数据数据的读取;
上述步骤完成后,在索引表中记录了目标标识码、几何类型、空间几何数据存储行号和属性数据存储行号,为后续要素数据从VCT文件中提取几何数据和属性数据建立了依据。
6.根据权利要求1所述的一种大容量VCT文件导入空间数据库方法,其特征在于:步骤十一:索引表创建后,接下来要将将预导入的VCT文件复制一个副本,同时打开原始和副本两个文件,分别从两个文件读取要素的空间几何数据和属性数据,完成VCT内矢量空间数据导入的具体处理;实施步骤如下:
1)打开两个VCT文件,文件句柄分别记做geoFile和attFile;
2)依次遍历已经建立的索引表记录;
3)读取要素的目标标识码、几何类型、空间几何数据行号和属性数据行号,分别记做MBBSM、geoType、geometryLoc和attributeRowLoc;
4)以geometryLoc为下标从linePosition数组中获得文件位置偏移量记做postion1;
5)将geoFile文件位置定位到postion1,并根据geoType读取空间几何数据,记做geo;
6)以attributeRowLoc为下标从linePosition数组中获得文件位置偏移量记做postion2;
7)将attFile文件位置定位到postion2,并读取一行属性数据,记录在一个属性数组中att[]中;
8)根据geo和att[]调用ArcObjects中的IFeature接口API,在空间数据库中创建一个要素feature,把geo转换为ArcObjects的Geometry对象,将att[]数组中的数据写入到feature中;
9)直到遍历完所有索引表记录,退出程序。
7.根据权利要求1所述的一种大容量VCT文件导入空间数据库方法,其特征在于:步骤十二:对于空间数据的解析,需要根据空间几何类型的不同有所不同,下面分别给出点、线和面状几何要素的解析方法:
点状要素空间几何数据读取步骤:
1)在当前位置读取一行文本,记录为变量line,当前line的内容就是目标标识码;
2)向后读取一行文本,赋值给line,当前line的内容就是要素类型编码;
3)向后读取一行文本,赋值给line,当前line内容为图形展现码;
4)向后读取一行文本,赋值给line,当前line内容为点类型;
5)向后读取一行文本,赋值给line,当前line内容为点坐标串,将当前字符串按照分隔符分隔,所获得的子字符串转为浮点类型,即点空间坐标值;
6)向后读取一行文本,赋值给line,当前line内容为结束符“0”;
7)完成点状要素的解析;
线状要素空间几何数据读取步骤:
1)在当前位置读取一行文本,记录为变量line,当前line的内容就是目标标识码;
2)向后读取一行文本,赋值给line,当前line的内容就是要素类型编码;
3)向后读取一行文本,赋值给line,当前line内容为图形展现码;
4)向后读取一行文本,赋值给line,当前line内容为线类型;
5)向后读取一行文本,赋值给line,当前line内容为线段数,转换为整型记做partCount;
6)针对线段数循环执行下列第7)~10)步partCount次;
7)向后读取一行文本,赋值给line;
8)向后读取一行文本,赋值给line,当前line的内容为点数,转换为整型后记做pointCount;
9)根据点数循环执行下列步骤pointCount次;
10)向后读取一行文本,赋值给line,当前line内容为点坐标串,将当前字符串按照分隔符分隔,所获得的子字符串转为浮点类型,即点空间坐标值;
11)向后读取一行文本,赋值给line,当前line内容为结束符“0”;
12)完成线状要素的解析;
面状要素空间几何数据读取步骤:
1)在当前位置读取一行文本,记录为变量line,当前line的内容就是目标标识码;
2)向后读取一行文本,赋值给line,当前line的内容就是要素类型编码;
3)向后读取一行文本,赋值给line,当前line内容为图形展现码;
4)向后读取一行文本,赋值给line,当前line内容为面类型;
5)向后读取一行文本,赋值给line,当前line内容为当前面要素面状几何体的标注点坐标串;
6)向后读取一行文本,赋值给line,当前line内容为当前面要坐标表达类型;
7)向后读取一行文本,赋值给line,当前line内容为弧段数,转换为整型记做arcCount;
8)根据环数依次先后读取数据,直到将所有弧段的目标标识码读取完毕,将弧段的目标标识码记录在一个数组arcMBBMS[]中;
9)向后读取一行文本,赋值给line,当前line内容为结束符“0”;
10)遍历arcMBBMS[],取出线要素的目标标识码,按照上述的线状要素解析办法,将线要素的几何信息读取出来,然后将所有的线要素连接就是面状要素的空间坐标信息;
11)完成面状要素的解析。
CN201910357079.6A 2019-04-29 2019-04-29 一种大容量vct文件导入空间数据库方法 Active CN110110024B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910357079.6A CN110110024B (zh) 2019-04-29 2019-04-29 一种大容量vct文件导入空间数据库方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910357079.6A CN110110024B (zh) 2019-04-29 2019-04-29 一种大容量vct文件导入空间数据库方法

Publications (2)

Publication Number Publication Date
CN110110024A true CN110110024A (zh) 2019-08-09
CN110110024B CN110110024B (zh) 2021-12-17

Family

ID=67487632

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910357079.6A Active CN110110024B (zh) 2019-04-29 2019-04-29 一种大容量vct文件导入空间数据库方法

Country Status (1)

Country Link
CN (1) CN110110024B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116342123A (zh) * 2023-05-30 2023-06-27 国网汇通金财(北京)信息科技有限公司 一种硬件钱包的数据读取的方法及装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1715425A2 (en) * 2005-04-14 2006-10-25 Rajesh Kapur Method and system for preserving access to a system in case of a disaster
WO2007033463A1 (en) * 2005-09-23 2007-03-29 Alan El-Sabbagh Methods and systems for joining database tables using indexing data structures
CN101609465A (zh) * 2009-07-16 2009-12-23 浙江大学 一种空间矢量数据的快速转换方法
CN101714165A (zh) * 2009-12-08 2010-05-26 青岛海信宽带多媒体技术有限公司 一种数据导入的方法
CN102023983A (zh) * 2009-09-11 2011-04-20 首都师范大学 统计时空数据库及其管理方法
CN103617174A (zh) * 2013-11-04 2014-03-05 同济大学 一种基于云计算的分布式搜索方法
CN104462169A (zh) * 2013-09-16 2015-03-25 西门子公司 将数据导入到数据库表中的方法和系统
CN104574835A (zh) * 2015-01-30 2015-04-29 国网河南省电力公司郑州供电公司 一种基于gis的电网灾害监测及预警系统和方法
CN106156209A (zh) * 2015-04-23 2016-11-23 中兴通讯股份有限公司 数据处理方法及装置
CN108090151A (zh) * 2017-12-11 2018-05-29 厦门亿力吉奥信息科技有限公司 基于多数据源的空间数据访问方法及存储介质
CN108875001A (zh) * 2018-06-14 2018-11-23 江苏爬山虎科技股份有限公司 一种大容量地理空间数据导出vct文件的方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1715425A2 (en) * 2005-04-14 2006-10-25 Rajesh Kapur Method and system for preserving access to a system in case of a disaster
WO2007033463A1 (en) * 2005-09-23 2007-03-29 Alan El-Sabbagh Methods and systems for joining database tables using indexing data structures
CN101609465A (zh) * 2009-07-16 2009-12-23 浙江大学 一种空间矢量数据的快速转换方法
CN102023983A (zh) * 2009-09-11 2011-04-20 首都师范大学 统计时空数据库及其管理方法
CN101714165A (zh) * 2009-12-08 2010-05-26 青岛海信宽带多媒体技术有限公司 一种数据导入的方法
CN104462169A (zh) * 2013-09-16 2015-03-25 西门子公司 将数据导入到数据库表中的方法和系统
CN103617174A (zh) * 2013-11-04 2014-03-05 同济大学 一种基于云计算的分布式搜索方法
CN104574835A (zh) * 2015-01-30 2015-04-29 国网河南省电力公司郑州供电公司 一种基于gis的电网灾害监测及预警系统和方法
CN106156209A (zh) * 2015-04-23 2016-11-23 中兴通讯股份有限公司 数据处理方法及装置
CN108090151A (zh) * 2017-12-11 2018-05-29 厦门亿力吉奥信息科技有限公司 基于多数据源的空间数据访问方法及存储介质
CN108875001A (zh) * 2018-06-14 2018-11-23 江苏爬山虎科技股份有限公司 一种大容量地理空间数据导出vct文件的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JIAJUN XU,等: "Spatial Information Retrieval Optimization Using Solr and GIS", 《2018 7TH INTERNATIONAL CONFERENCE ON AGRO-GEOINFORMATICS (AGRO-GEOINFORMATICS)》 *
黄丽冰: "数据流实现文件导入导出数据库", 《数据库与信息管理》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116342123A (zh) * 2023-05-30 2023-06-27 国网汇通金财(北京)信息科技有限公司 一种硬件钱包的数据读取的方法及装置
CN116342123B (zh) * 2023-05-30 2023-08-18 国网汇通金财(北京)信息科技有限公司 一种硬件钱包的数据读取的方法及装置

Also Published As

Publication number Publication date
CN110110024B (zh) 2021-12-17

Similar Documents

Publication Publication Date Title
Ma et al. Joint layout analysis, character detection and recognition for historical document digitization
CN108228825B (zh) 一种基于分词的用户地址数据清洗方法
US11651150B2 (en) Deep learning based table detection and associated data extraction from scanned image documents
CN107766555A (zh) 基于软约束无监督型跨模态哈希的图像检索方法
CN109635285A (zh) 企业全称与简称匹配方法、装置、计算机设备和存储介质
CN112699915B (zh) 基于改进的图注意力网络识别cad模型装配接口的方法
CN109446689A (zh) 直流换流站二次系统图纸识别方法及系统
CN111309930B (zh) 一种基于表示学习的医学知识图谱实体对齐方法
CN110458132A (zh) 一种基于端到端的不定长文本识别方法
CN105488471B (zh) 一种字形识别方法及装置
CN105183950B (zh) 一种基于移动终端查阅工程图纸的方法及系统
CN114491036A (zh) 一种基于自监督和有监督联合训练的半监督文本分类方法及系统
CN114491200A (zh) 基于图神经网络的异源兴趣点匹配方法和装置
CN110110024A (zh) 一种大容量vct文件导入空间数据库方法
CN110147785A (zh) 图像识别方法、相关装置和设备
CN112861538A (zh) 一种基于上下文语义关系和文档一致性约束的实体链接方法
CN111966836A (zh) 知识图谱向量表示方法、装置、计算机设备及存储介质
CN116778164A (zh) 一种基于多尺度结构改进DeeplabV3+网络的语义分割方法
CN111460197A (zh) 一种国土平面交叉路口矢量要素的识别方法
CN113656556B (zh) 一种文本特征抽取方法及知识图谱构建方法
Pfaltz Finding the Mule in the Network
CN104516899A (zh) 字库更新方法和装置
CN112765934A (zh) 一种表格公式的缩进教学演示系统及方法
Zhao et al. Oracle bone inscriptions components analysis based on image similarity
CN101916432B (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