CN109669961A - 一种多源矢量数据存储及迭代计算方法 - Google Patents

一种多源矢量数据存储及迭代计算方法 Download PDF

Info

Publication number
CN109669961A
CN109669961A CN201910184674.4A CN201910184674A CN109669961A CN 109669961 A CN109669961 A CN 109669961A CN 201910184674 A CN201910184674 A CN 201910184674A CN 109669961 A CN109669961 A CN 109669961A
Authority
CN
China
Prior art keywords
data
storage
range
library
wkt
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.)
Pending
Application number
CN201910184674.4A
Other languages
English (en)
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.)
Ziguang Cloud Digital Technology Co Ltd
Original Assignee
Ziguang Cloud Digital Technology Co Ltd
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 Ziguang Cloud Digital Technology Co Ltd filed Critical Ziguang Cloud Digital Technology Co Ltd
Priority to CN201910184674.4A priority Critical patent/CN109669961A/zh
Publication of CN109669961A publication Critical patent/CN109669961A/zh
Priority to PCT/CN2019/098760 priority patent/WO2020181710A1/zh
Pending legal-status Critical Current

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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • 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/25Integrating or interfacing systems involving database management systems

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)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种多源矢量数据存储及迭代计算方法,涉及数据库技术领域,包括如下步骤:(1)数据解析;通过开源库对上传的各类矢量数据作解析;(2)数据入库;识别并提取空间信息字段,用字符串拼接方式转换成WKT标准的长字符串,新增Coordniate字段存储WKT格式数据,随矢量数据一起入MySQL库;(3)迭代计算;后台计算入库数据的范围,当数据量超过一定范围时,计算当前数据所占Polygon大小,分别存入链表,最后再计算链表内所有Polygon范围的合集,得出总的范围。本发明采用基于WKT格式的数据存储和MySQL5.7的空间查询机制实现多源矢量数据的标准化存储与数据自动定位,并且全开源框架能够有效节约项目成本。

Description

一种多源矢量数据存储及迭代计算方法
技术领域
本发明涉及数据库技术领域,尤其是一种多源矢量数据存储及迭代计算方法。
背景技术
现有技术中,矢量数据来源种类较多(shp、Excel、GeoJSON等),尚未存在一套解决多源矢量数据从上传、自动解析到快速定位展示的开源解决方案。虽然通过Gdal等开源库能够实现shp数据的解析与定位,但是仅对shp支持具有一定的局限性。
发明内容
本发明所要解决的技术问题在于,提供一种多源矢量数据存储及迭代计算方法,能够实现多源矢量数据的标准化存储与数据自动定位,并且全开源框架能够有效节约项目成本,采用的是主流的关系数据库,可以和现在的软件项目无缝集成。
为解决上述技术问题,本发明提供一种多源矢量数据存储及迭代计算方法,包括如下步骤:
(1)数据解析;通过开源库对上传的各类矢量数据作解析;
(2)数据入库;识别并提取空间信息字段,用字符串拼接方式转换成WKT标准的长字符串,新增Coordniate字段存储WKT格式数据,随矢量数据一起入MySQL库;
(3)迭代计算;后台计算入库数据的范围,当数据量超过一定范围时,计算当前数据所占Polygon大小,分别存入链表,最后再计算链表内所有Polygon范围的合集,得出总的范围。
优选的,步骤(1)中,矢量数据包括shp、Excel和GeoJSON。
优选的,步骤(1)中,通过开源库对上传的各类矢量数据作解析具体为:
shp解析:通过shapefile for python、GDAL开源库读取shp数据并获取其空间数据与特征数据;
Excel解析:通过xlrd或者pandas开源库读取Excel数据;
GeoJson解析:通过python的json库读取GeoJson数据,读入内存后转换成JSON对象,根据GeoJson通用格式标准,解析其Features内的Geometry、Type和properties属性,获取空间、类型、特征数据,标准化入库。
优选的,步骤(3)中,后台计算入库数据的范围具体包括如下步骤:
(31)提取WKT空间信息,拼接GeometryCollection();
(32)判断拼接字符串长度,超过限定范围后先行计算当前数据范围;
(33)字符串拼接完成,执行同上查询语句;
(34)链表若不为空,再次拼接链表中数据,执行上述查询语句,得到最后的范围。
优选的,步骤(3)中,判断拼接字符串长度,超过限定范围后先行计算当前数据范围;范围也是WKT格式,存入链表,执行MySQL查询。
本发明的有益效果为:本发明采用基于WKT格式的数据存储和MySQL5.7的空间查询机制实现多源矢量数据的标准化存储与数据自动定位,并且全开源框架能够有效节约项目成本,采用的是主流的关系数据库,可以和现在的软件项目无缝集成。
附图说明
图1为本发明的方法流程示意图。
具体实施方式
如图1所示,一种多源矢量数据存储及迭代计算方法,包括如下步骤:
(1)数据解析;通过开源库对上传的各类矢量数据作解析;
(2)数据入库;识别并提取空间信息字段,用字符串拼接方式转换成WKT标准的长字符串,新增Coordniate字段存储WKT格式数据,随矢量数据一起入MySQL库;
(3)迭代计算;后台计算入库数据的范围,当数据量超过一定范围时,计算当前数据所占Polygon大小,分别存入链表,最后再计算链表内所有Polygon范围的合集,得出总的范围。
通过开源库对上传的各类矢量数据作解析具体为:
shp解析:通过shapefile for python、GDAL开源库读取shp数据并获取其空间数据与特征数据,比如shapefile.Reader(file)读取数据到内存,再通过fields、shapeTypeName、shapeRecords等属性获取其字段名称、空间特征及数据等,解码以后入MySQL库;
Excel解析:通过xlrd(推荐,轻量化)或者pandas等开源库读取Excel数据,比如用xlrd.open_workbook(filepath)加载Excel数据到内存,再通过sheet_by_name(sheet)获取数据表,row_values()获取表内的行数据,进而解析入库;
GeoJson解析:通过python的json库读取GeoJson数据,读入内存后转换成JSON对象,根据GeoJson通用格式标准,解析其Features内的Geometry、Type和properties属性,获取空间、类型、特征数据,标准化入库,这里需要用到geomet库的wkt格式转化接口,将空间数据转换成WKT格式,比较方便。
步骤(3)中,后台计算入库数据的范围具体包括如下步骤:
(31)提取WKT空间信息,拼接GeometryCollection();
(32)判断拼接字符串长度,超过限定范围后先行计算当前数据范围;范围也是WKT格式,如Ploygon(xxxxx,xxxx,xxxx,xxxx)),存入链表,计算方式为SQL语句:“SELECT AsText(Envelope(GeomFromText('GeometryCollection(%s)'))) ”执行MySQL查询;
(33)字符串拼接完成,执行同上查询语句;
(34)链表若不为空,再次拼接链表中数据,执行上述查询语句,得到最后的范围。
判断拼接字符串长度,超过限定范围后先行计算当前数据范围;范围也是WKT格式,如Ploygon(xxxxx,xxxx,xxxx,xxxx)),存入链表,计算方式为SQL语句:“SELECT AsText(Envelope(GeomFromText('GeometryCollection(%s)'))) ”执行MySQL查询。
这里的总体范围是在一定情况下才会出现,比如拼接MySQL查询语句的总大小超过数据库自身要求,这就需要根据数据大小分批次的执行“Envelope(GeomFromText('GeometryCollection(%s)'))”语句,查询结果将会是一个面区域范围“Ploygon(xxxxx,xxxx,xxxx,xxxx)”,将每次查询结果存入一张链表,最后将链表中的所有ploygon再此拼接成一个'GeometryCollection()',执行一次“Envelope(GeomFromText('GeometryCollection(%s)'))”,既得出总的范围。
本发明在数据入库后动态计算数据的Extent,MySQL5.7以上版本本身支持WKT格式字符串的地理空间转换,在做空间查询时通过GeomFromText(%s)接口能够有效的支持多源数据的空间查询。
本发明将Excel、shape、GeoJSON等通用格式数据解析,新增WKT字段存储空间数据;利用MySQL5.7的空间查询特性动态生成数据范围实现矢量数据的标准化与快速定位;当数据量较大时通过迭代的方式分批计算数据范围,再计算所有范围的合集。
本发明采用基于WKT格式的数据存储和MySQL5.7的空间查询机制实现多源矢量数据的标准化存储与数据自动定位,并且全开源框架能够有效节约项目成本,采用的是主流的关系数据库,可以和现在的软件项目无缝集成。

Claims (5)

1.一种多源矢量数据存储及迭代计算方法,其特征在于,包括如下步骤:
(1)数据解析;通过开源库对上传的各类矢量数据作解析;
(2)数据入库;识别并提取空间信息字段,用字符串拼接方式转换成WKT标准的长字符串,新增Coordniate字段存储WKT格式数据,随矢量数据一起入MySQL库;
(3)迭代计算;后台计算入库数据的范围,当数据量超过一定范围时,计算当前数据所占Polygon大小,分别存入链表,最后再计算链表内所有Polygon范围的合集,得出总的范围。
2.如权利要求1所述的多源矢量数据存储及迭代计算方法,其特征在于,步骤(1)中,矢量数据包括shp、Excel和GeoJSON。
3.如权利要求1所述的多源矢量数据存储及迭代计算方法,其特征在于,步骤(1)中,通过开源库对上传的各类矢量数据作解析具体为:
shp解析:通过shapefile for python、GDAL开源库读取shp数据并获取其空间数据与特征数据;
Excel解析:通过xlrd或者pandas开源库读取Excel数据;
GeoJson解析:通过python的json库读取GeoJson数据,读入内存后转换成JSON对象,根据GeoJson通用格式标准,解析其Features内的Geometry、Type和properties属性,获取空间、类型、特征数据,标准化入库。
4.如权利要求1所述的多源矢量数据存储及迭代计算方法,其特征在于,步骤(3)中,后台计算入库数据的范围具体包括如下步骤:
(31)提取WKT空间信息,拼接GeometryCollection();
(32)判断拼接字符串长度,超过限定范围后先行计算当前数据范围;
(33)字符串拼接完成,执行同上查询语句;
(34)链表若不为空,再次拼接链表中数据,执行上述查询语句,得到最后的范围。
5.如权利要求1所述的多源矢量数据存储及迭代计算方法,其特征在于,步骤(3)中,判断拼接字符串长度,超过限定范围后先行计算当前数据范围;范围也是WKT格式,存入链表,执行MySQL查询。
CN201910184674.4A 2019-03-12 2019-03-12 一种多源矢量数据存储及迭代计算方法 Pending CN109669961A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910184674.4A CN109669961A (zh) 2019-03-12 2019-03-12 一种多源矢量数据存储及迭代计算方法
PCT/CN2019/098760 WO2020181710A1 (zh) 2019-03-12 2019-08-01 一种基于MySQL的多源矢量数据存储及迭代计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910184674.4A CN109669961A (zh) 2019-03-12 2019-03-12 一种多源矢量数据存储及迭代计算方法

Publications (1)

Publication Number Publication Date
CN109669961A true CN109669961A (zh) 2019-04-23

Family

ID=66151824

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910184674.4A Pending CN109669961A (zh) 2019-03-12 2019-03-12 一种多源矢量数据存储及迭代计算方法

Country Status (2)

Country Link
CN (1) CN109669961A (zh)
WO (1) WO2020181710A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110570518A (zh) * 2019-09-02 2019-12-13 紫光云技术有限公司 一种基于模型数据高度压缩的海量模型加载方法
WO2020181710A1 (zh) * 2019-03-12 2020-09-17 紫光云数科技有限公司 一种基于MySQL的多源矢量数据存储及迭代计算方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050055376A1 (en) * 2003-09-05 2005-03-10 Oracle International Corporation Georaster physical data model for storing georeferenced raster data
CN102799622A (zh) * 2012-06-19 2012-11-28 北京大学 基于MapReduce扩展框架的分布式SQL查询方法
CN107544948A (zh) * 2017-07-12 2018-01-05 中国农业大学 一种基于MapReduce的矢量文件转换方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109669961A (zh) * 2019-03-12 2019-04-23 紫光云数科技有限公司 一种多源矢量数据存储及迭代计算方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050055376A1 (en) * 2003-09-05 2005-03-10 Oracle International Corporation Georaster physical data model for storing georeferenced raster data
CN102799622A (zh) * 2012-06-19 2012-11-28 北京大学 基于MapReduce扩展框架的分布式SQL查询方法
CN107544948A (zh) * 2017-07-12 2018-01-05 中国农业大学 一种基于MapReduce的矢量文件转换方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
佚名: "Mysql gis 空间数据库功能详解学习", 《HTTPS://WENKU.BAIDU.COM/VIEW/05185EBBA32D7375A41780C2.HTML》 *
佚名: "在程序中拼接的SQL语句条件过长时该如何处理?求大神", 《HTTPS://BBS.CSDN.NET/TOPICS/392159841?PAGE=1》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020181710A1 (zh) * 2019-03-12 2020-09-17 紫光云数科技有限公司 一种基于MySQL的多源矢量数据存储及迭代计算方法
CN110570518A (zh) * 2019-09-02 2019-12-13 紫光云技术有限公司 一种基于模型数据高度压缩的海量模型加载方法

Also Published As

Publication number Publication date
WO2020181710A1 (zh) 2020-09-17

Similar Documents

Publication Publication Date Title
US11615143B2 (en) System and method for querying a graph model
US20120011118A1 (en) Method and system for defining an extension taxonomy
US20120246611A1 (en) Transformation framework
US8706783B2 (en) Storing hierarchical table as a markup language file
CN109669961A (zh) 一种多源矢量数据存储及迭代计算方法
Breen Mining twitter for airline consumer sentiment
CN111522868A (zh) 数据规则的处理方法、装置、电子设备及存储介质
US11934361B2 (en) Automatic generation of a data model from a structured query language (SQL) statement
US9116932B2 (en) System and method of querying data
CN113287100A (zh) 用于生成内存表格模型数据库的系统和方法
CN103886021A (zh) 一种基于自然语言的数据库审计结果翻译方法及系统
US20090300038A1 (en) Methods and Apparatus for Reuse Optimization of a Data Storage Process Using an Ordered Structure
US20180060374A1 (en) Optimizing column based database table compression
CN107203525B (zh) 数据库的处理方法和装置
US8711142B2 (en) Visual model importation
CN116010439A (zh) 一种可视化中文sql系统及构建查询方法
US11615054B2 (en) Merchant table and associated processes
CN114020852A (zh) 知识图谱的展示方法和装置
CN114064655A (zh) 一种可配置化数据查询及数据关系的自动发现方法
CN114416772A (zh) 一种数据查询方法、装置、电子设备以及存储介质
Zhou A review of Javascript object notation in data analysis
Haw et al. XMapDB-Sim: Performance evalaution on model-based XML to Relational Database mapping choices
US11880370B2 (en) Retroreflective join graph generation for relational database queries
US11966869B2 (en) Systems and methods for simulating qualitative assumptions
WO2022178931A1 (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190423