CN112181248A - 一种历史列表的操作方法和装置 - Google Patents
一种历史列表的操作方法和装置 Download PDFInfo
- Publication number
- CN112181248A CN112181248A CN202011025084.6A CN202011025084A CN112181248A CN 112181248 A CN112181248 A CN 112181248A CN 202011025084 A CN202011025084 A CN 202011025084A CN 112181248 A CN112181248 A CN 112181248A
- Authority
- CN
- China
- Prior art keywords
- index
- editing
- edit
- canvas
- current
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种历史列表的操作方法和装置,本发明包括:当在所述历史列表接收到用户输入的点击操作时,检测所述点击操作的点击位置,将所述点击位置对应的编辑索引作为指定编辑索引;将所述指定编辑索引与当前编辑索引之间的编辑索引作为目标编辑索引;其中,所述当前编辑索引为与所述当前画布对应的编辑单元的编辑索引;对所述目标编辑索引对应的编辑单元执行调整操作,生成目标画布;将所述当前编辑索引更新为所述指定编辑索引;将所述当前画布更新为所述目标画布,进而提高在矢量数据较多的情况下编辑操作的响应速度以及数据存储准确率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种历史列表的操作方法和装置。
背景技术
历史列表,顾名思义就是记录软件使用过程中的近段时间来的所有操作的列表,能够在软件编辑的过程中,快速地回退或者前进到历史列表某一步的编辑操作,再从该状态下继续编辑,这是很有必要的,极为方便地去掉某些不想要甚至是错误的编辑操作。而对于GIS(Geographic Information System,地理信息系统),在使用GIS测图软件作图的过程中,作图员需要经常性进行撤销或者恢复的操作,而历史列表的存在对实现需求和提高作图效率起到重要的作用。
GIS测图软件通常编辑的是GIS定义的相关矢量数据,比如:点、线、面等矢量数据,而且为了下次打开软件能继续进行编辑这些矢量数据或者把矢量数据输出等原因,现有的历史列表是直接把这些矢量数据保存到数据库文件中,在每次用户操作时,直接对数据库文件进行编辑。但上述历史列表的操作方法在数据量较多时容易导致编辑过程出现卡顿,无法及时响应用户的操作,同时还可能会由于编辑过程的卡顿导致矢量数据保存到数据库时出错。
发明内容
本发明提供了一种历史列表的操作方法和装置,解决了现有技术由于GIS测图软件编辑的数据量较多,所导致的编辑操作响应较慢,矢量数据容易保存出错的技术问题。
本发明提供的一种历史列表的操作方法,应用于GIS测图软件,所述GIS测图软件包括当前画布和历史列表,所述历史列表包括多条编辑索引,每条所述编辑索引具有对应的一个或多个编辑单元,所述方法包括:
当在所述历史列表接收到用户输入的点击操作时,检测所述点击操作的点击位置,将所述点击位置对应的编辑索引作为指定编辑索引;
将所述指定编辑索引与当前编辑索引之间的编辑索引作为目标编辑索引;其中,所述当前编辑索引为与所述当前画布对应的编辑单元的编辑索引;
对所述目标编辑索引对应的编辑单元执行调整操作,生成目标画布;
将所述当前编辑索引更新为所述指定编辑索引;
将所述当前画布更新为所述目标画布。
可选地,所述调整操作包括撤销操作和恢复操作,所述对所述目标编辑索引对应的编辑单元执行调整操作,生成目标画布的步骤,包括:
当所述指定编辑索引的位置位于所述当前编辑索引的位置的上方时,对所述目标编辑索引对应的编辑单元执行撤销操作,生成目标画布;
当所述指定编辑索引的位置位于所述当前编辑索引的位置的下方时,对所述目标编辑索引对应的编辑单元执行恢复操作,生成目标画布。
可选地,所述GIS测图软件还包括缓存模块,所述方法还包括:
当在所述当前画布上接收到用户输入的编辑操作时,新建与所述编辑操作对应的待判断编辑单元;
判断所述待判断编辑单元对应的待判断编辑索引与所述历史列表的栈顶编辑索引是否一致;
若一致,则存储所述待判断编辑单元到所述缓存模块,生成新建画布;
更新所述栈顶编辑索引为所述待判断编辑索引;
将所述当前画布更新为所述新建画布。
可选地,所述方法还包括:
若不一致,则将所述栈顶编辑索引与所述待判断编辑索引之间的编辑索引作为待出栈索引;
对所述待出栈索引对应的编辑单元逐一出栈;
存储所述待判断编辑单元到所述缓存模块,生成新建画布。
可选地,所述GIS测图软件还包括数据库,所述方法还包括:
当接收到用户输入的保存操作时,或者所述GIS测图软件的启动时间超过预设时间阈值时,将所述编辑单元栈中的矢量数据保存到所述数据库。
本发明还提供了一种历史列表的操作装置,应用于GIS测图软件,所述GIS测图软件包括当前画布和历史列表,所述历史列表包括多条编辑索引,每条所述编辑索引具有对应的一个或多个编辑单元,所述装置包括:
指定编辑索引确定模块,用于当在所述历史列表接收到用户输入的点击操作时,检测所述点击操作的点击位置,将所述点击位置对应的编辑索引作为指定编辑索引;
目标编辑索引确定模块,用于将所述指定编辑索引与当前编辑索引之间的编辑索引作为目标编辑索引;其中,所述当前编辑索引为与所述当前画布对应的编辑单元的编辑索引;
调整模块,用于对所述目标编辑索引对应的编辑单元执行调整操作,生成目标画布;
索引更新模块,用于将所述当前编辑索引更新为所述指定编辑索引;
第一画布更新模块,用于将所述当前画布更新为所述目标画布。
可选地,所述调整操作包括撤销操作和恢复操作,所述调整模块包括:
撤销模块,用于当所述指定编辑索引的位置位于所述当前编辑索引的位置的上方时,对所述目标编辑索引对应的编辑单元执行撤销操作,生成目标画布;
恢复模块,用于当所述指定编辑索引的位置位于所述当前编辑索引的位置的下方时,对所述目标编辑索引对应的编辑单元执行恢复操作,生成目标画布。
可选地,所述GIS测图软件还包括缓存模块,所述装置还包括:
编辑单元新建模块,用于当在所述当前画布上接收到用户输入的编辑操作时,新建与所述编辑操作对应的待判断编辑单元;
索引判断模块,用于判断所述待判断编辑单元对应的待判断编辑索引与所述历史列表的栈顶编辑索引是否一致;
第一编辑单元存储模块,用于若一致,则存储所述待判断编辑单元到所述缓存模块,生成新建画布;
栈顶索引更新模块,用于更新所述栈顶编辑索引为所述待判断编辑索引;
第二画布更新模块,用于将所述当前画布更新为所述新建画布。
可选地,所述装置还包括:
待出栈索引确定模块,用于若不一致,则将所述栈顶编辑索引与所述待判断编辑索引之间的编辑索引作为待出栈索引;
出栈模块,用于对所述待出栈索引对应的编辑单元逐一出栈;
第二编辑单元存储模块,用于存储所述待判断编辑单元到所述缓存模块,生成新建画布。
可选地,所述GIS测图软件还包括数据库,所述装置还包括:
数据库保存模块,用于当接收到用户输入的保存操作时,或者所述GIS测图软件的启动时间超过预设时间阈值时,将所述编辑单元栈中的矢量数据保存到所述数据库。
从以上技术方案可以看出,本发明具有以下优点:
在本发明实施例中,当在历史列表中接收到用户的点击操作时,通过检测点击操作的点击位置,确定历史列表中的指定编辑索引;再通过将指定编辑索引与当前编辑索引之间的编辑索引作为目标编辑索引,对目标编辑索引对应的编辑单元执行调整操作,从而生成目标画布;最后将当前编辑索引更新为指定编辑索引,将当前画布更新为目标画布,从而解决现有技术由于GIS测图软件编辑的数据量较多,所导致的编辑操作响应较慢,矢量数据容易保存出错的技术问题,进而提高在矢量数据较多的情况下编辑操作的响应速度以及数据存储准确率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种历史列表的操作方法的步骤流程图;
图2为本发明可选实施例提供的一种历史列表的操作方法的步骤流程图;
图3为本发明实施例提供的一种历史列表示意图;
图4为本发明实施例提供的历史列表与编辑单元的对应关系示意图;
图5为本发明实施例提供的编辑单元的类别示意图;
图6为本发明实施例提供的图层缓存模块的结构框图;
图7为本发明实施例提供的GIS测图软件的使用步骤流程图;
图8为本发明实施例提供的一种历史列表的操作装置的结构框图。
具体实施方式
本发明实施例提供了一种历史列表的操作方法和装置,用于解决现有技术由于GIS测图软件编辑的数据量较多,所导致的编辑操作响应较慢,矢量数据容易保存出错的技术问题。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例提供的一种历史列表的操作方法的步骤流程图。
本发明提供的一种历史列表的操作方法,应用于GIS测图软件,所述GIS测图软件包括当前画布和历史列表,所述历史列表包括多条编辑索引,每条所述编辑索引具有对应的一个或多个编辑单元,所述方法包括:
步骤101,当在所述历史列表接收到用户输入的点击操作时,检测所述点击操作的点击位置,将所述点击位置对应的编辑索引作为指定编辑索引;
在本发明实施例中,用户在GIS测图软件的当前画布上进行矢量数据的构建,例如点线面等,而在用户编辑较为复杂的矢量数据时,若是逐个撤销可能会导致软件死机,出现卡顿等情况,此时用户需要使用历史列表进行大量数据的撤销或者恢复,当在历史列表接收到用户输入的点击操作时,也就是用户在历史列表中选择需要撤销或者恢复的步骤,此时检测点击操作所对应的点击位置,将点击位置对应的编辑索引作为指定编辑索引,开始调整操作。
步骤102,将所述指定编辑索引与当前编辑索引之间的编辑索引作为目标编辑索引;
其中,所述当前编辑索引为与所述当前画布对应的编辑单元的编辑索引;
在具体实现中,在执行调整操作之前,还需要确定调整的编辑索引是哪些,此时可以将指定编辑索引和当前画布对应的编辑单元的编辑索引之间的编辑索引作为目标编辑索引,将目标编辑索引作为需要调整的编辑索引。
步骤103,对所述目标编辑索引对应的编辑单元执行调整操作,生成目标画布;
在确定目标编辑索引之后,在缓存模块中确定目标编辑索引对应的编辑单元,对编辑单元执行调整操作,从而实现当前画布上的大量编辑操作的撤销或恢复,生成目标画布。
步骤104,将所述当前编辑索引更新为所述指定编辑索引;
步骤105,将所述当前画布更新为所述目标画布。
在本发明实施例中,当在历史列表中接收到用户的点击操作时,通过检测点击操作的点击位置,确定历史列表中的指定编辑索引;再通过将指定编辑索引与当前编辑索引之间的编辑索引作为目标编辑索引,对目标编辑索引对应的编辑单元执行调整操作,从而生成目标画布;最后将当前编辑索引更新为指定编辑索引,将当前画布更新为目标画布,从而解决现有技术由于GIS测图软件编辑的数据量较多,所导致的编辑操作响应较慢,矢量数据容易保存出错的技术问题,进而提高在矢量数据较多的情况下编辑操作的响应速度以及数据存储准确率。
请参阅图2,图2为本发明可选实施例提供的一种历史列表的操作方法的步骤流程图。
本发明提供的一种历史列表的操作方法,应用于GIS测图软件,所述GIS测图软件包括当前画布和历史列表,所述历史列表包括多条编辑索引,每条所述编辑索引具有对应的一个或多个编辑单元,所述方法包括:
步骤201,当在所述历史列表接收到用户输入的点击操作时,检测所述点击操作的点击位置,将所述点击位置对应的编辑索引作为指定编辑索引;
步骤202,将所述指定编辑索引与当前编辑索引之间的编辑索引作为目标编辑索引;
其中,所述当前编辑索引为与所述当前画布对应的编辑单元的编辑索引;
在本发明实施例中,上述步骤201-202的具体实现过程与步骤101-102类似,在此不再赘述。
参见图3,图3示出了本发明实施例中的一种历史列表示意图,其中包括原始状态、画三线地物、画三线地物、自动交叉路口、画复合线、延伸、多次拷贝、线端点拼接和修线续接等多个编辑索引,其中修线续接为本实施例中的当前编辑索引,当点击操作的点击位置为延伸的那一栏时,确定延伸为本实施例中的指定编辑索引,而延伸至修线续接之间的“多次拷贝”以及“线端点拼接”编辑索引也就是目标编辑索引。
列表中的每一栏代表一个编辑操作,编辑操作的对象是实体要素(如点实体要素,线实体要素,面实体要素等GIS中定义实体要素,其主要数据包含要素的几何和要素的属性两个部分),一个编辑操作由一个或者多个编辑单元组成,而编辑单元(如图三所示)分为增加实体要素、删除实体要素、修改实体要素(分为更新几何或者更新属性),用户点击列表中的某一栏,如果点击的那一栏在当前所处编辑栏(即历史列表)的上方,那么软件相应地回退到该操作时的状态,也就是说对实体要素进行撤销操作,增加的编辑单元就把增加的实体要素删除,删除的编辑单元就把删除的实体要素重新增加,修改的编辑单元就对修改后的要素实体恢复回修改前。否则如果点击的那一栏在当前所处编辑栏的下方,那么软件相应地前进到该操作时的状态,也就是说对实体要素进行恢复操作。
参见图4,图4示出了本发明实施例中的历史列表与编辑单元的对应关系示意图,其中包括原始状态、画三线地物、画三线地物、自动交叉路口、画复合线、延伸、多次拷贝、线端点拼接和修线续接等多个编辑索引,每个编辑索引中均包括了“增加”、“删除”或“修改”等编辑单元的至少一个,其中“增加”指的是增加实体要素,“删除”指的是删除实体要素,“修改”包括更新实体要素几何和更新实体要素属性。
为了保证内存中的矢量数据更新到数据库文件时的正确性,利用数据库文件的主键(GIS通常会定义为FID)的唯一性,建立内存和数据库文件的FID字段值对应表(内存中的FID字段值为负数,数据库的FID字段值为正数),更新(增加,删除,修改等)时根据这个对应表更新数据库文件中对应的矢量数据。
可选地,所述调整操作包括撤销操作和恢复操作,通过判断指定编辑索引与当前编辑索引的位置,确定对目标编辑索引对应的编辑单元进行撤销操作或是恢复操作,上述步骤103可以替换为以下步骤203-204:
步骤203,当所述指定编辑索引的位置位于所述当前编辑索引的位置的上方时,对所述目标编辑索引对应的编辑单元执行撤销操作,生成目标画布;
参见图5,图5示出了本发明实施例的编辑单元的类别示意图,其中包括多种类型,如增加实体要素、删除实体要素、更新实体要素几何和更新实体要素属性。
参见图6,图6示出了本发明实施例中的图层缓存模块的结构框图,包括新增实体要素缓存模块、更新实体要素的几何缓存模块、更新实体要素的属性字段缓存模块、删除实体要素缓存模块以及内存和数据库文件FID字段值对应表。
其中,新增实体要素缓存模块:保存图层中要缓存实体要素,实体要素的FID字段值作为查找关键字;
更新实体要素几何缓存模块:保存图层中要缓存实体要素的几何数据,实体要素的FID字段值作为查找关键字;
更新实体要素属性缓存模块:保存图层中要缓存实体要素的属性数据,实体要素的FID字段值作为查找关键字;
删除实体要素缓存模块:保存图层中要缓存实体要素的FID字段值;
内存和数据库文件的FID字段值对应表:保存图层中内存中的实体要素FID字段值与数据库文件中对应的实体要素的FID字段值。
值得一提的是,对所述目标编辑索引对应的编辑单元执行的撤销操作可以通过以下步骤S11-S14实现:
S11、若是对增加实体要素的编辑单元进行撤销,可以通过以下步骤进行实现:
步骤一:根据保留的实体要素的FID字段值,将对应图层的新增实体要素缓存模块中,删除对应的要素。
步骤二:根据保留的实体要素的FID字段值,如果对应图层的内存和数据库文件的FID字段值对应表中存在此FID字段值,那么将对应图层的删除实体要素缓存模块中,增加此FID字段值。
S12、若是对删除实体要素的编辑单元进行撤销,可以通过以下步骤进行实现:
步骤一:读取保留的实体要素的FID字段值,如果为负数那么进入步骤二,否则进入步骤三。
步骤二:将对应图层的新增实体要素缓存模块中保存此实体要素。如果对应图层的内存和数据库文件的FID字段值对应表中存在此FID字段值,那么将对应图层的删除实体要素缓存模块中,删除此FID字段值对应的数据库文件的FID字段值。
步骤三:将对应图层的删除实体要素缓存模块中,删除此FID字段值。如果数据库文件中不存在与此FID字段值对应的实体要素数据,则将保留的实体要素保存到对应图层的新增实体要素缓存模块中。
S13、若是对更新实体要素几何的编辑单元进行撤销,可以通过以下步骤进行实现:
步骤一:判断对应图层的新增实体要素缓存模块中是否存在保留的FID字段值,若存在进入步骤二,否则进入步骤三。
步骤二:将旧几何替换对应图层的新增实体要素缓存模块中对应FID字段值的实体要素的几何。从对应图层的内存和数据库文件的FID字段值对应表中,获取此FID字段值对应的数据库文件中的FID字段值,根据获取的FID字段值,将旧几何保存到更新实体要素几何缓存模块中。
步骤三:根据保留的FID字段值,将旧几何保存到更新实体要素几何缓存模块中。
S14、若是对更新实体要素属性的编辑单元进行撤销,可以通过以下步骤进行实现:
步骤一:判断对应图层的新增实体要素缓存模块中是否存在保留的FID字段值,若存在进入步骤二,否则进入步骤三。
步骤二:将旧属性替换对应图层的新增实体要素缓存模块中对应FID字段值的实体要素的属性。从对应图层的内存和数据库文件的FID字段值对应表中,获取此FID字段值对应的数据库文件中的FID字段值,根据获取的FID字段值,将旧属性保存到更新实体要素属性缓存模块中。
步骤三:根据保留的FID字段值,将旧属性保存到更新实体要素属性缓存模块中。
步骤204,当所述指定编辑索引的位置位于所述当前编辑索引的位置的下方时,对所述目标编辑索引对应的编辑单元执行恢复操作,生成目标画布。
值得一提的是,对所述目标编辑索引对应的编辑单元执行的恢复操作可以通过以下步骤S21-S24实现:
S21、增加实体要素的编辑单元的恢复操作步骤:
步骤一:将保留的实体要素保存到对应图层的新增实体要素缓存模块中。
步骤二:根据保留的实体要素的FID字段值,如果对应图层的内存和数据库文件的FID字段值对应表中存在此FID字段值,那么将对应图层的删除实体要素缓存模块中,删除此FID字段值。
S22、删除实体要素的编辑单元的恢复操作步骤:
步骤一:读取保留的实体要素的FID字段值,如果为负数那么进入步骤二,否则进入步骤三。
步骤二:将对应图层的新增实体要素缓存模块中,删除对应的要素。如果对应图层的内存和数据库文件的FID字段值对应表中存在此FID字段值,那么将对应图层的删除实体要素缓存模块中,插入此FID字段值对应的数据库文件的FID字段值。
步骤三:如果应图层的新增实体要素缓存模块中存在此FID值对应的实体要素,那么就从新增实体要素缓存模块中删除此FID字段值对应的实体要素,否则从删除实体要素缓存模块中删除此FID字段值。
S23、更新实体要素的几何数据的编辑单元的恢复操作步骤:
步骤一:判断对应图层的新增实体要素缓存模块中是否存在保留的FID字段值,若存在进入步骤二,否则进入步骤三。
步骤二:将更新几何替换对应图层的新增实体要素缓存模块中对应FID字段值的实体要素的几何。从对应图层的内存和数据库文件的FID字段值对应表中,获取此FID字段值对应的数据库文件中的FID字段值,根据获取的FID字段值,将更新几何保存到更新实体要素几何缓存模块中。
步骤三:根据保留的FID字段值,将更新几何保存到更新实体要素几何缓存模块中。
S24、更新实体要素的属性数据的编辑单元的恢复操作步骤:
步骤一:判断对应图层的新增实体要素缓存模块中是否存在保留的FID字段值,若存在进入步骤二,否则进入步骤三。
步骤二:将更新属性替换对应图层的新增实体要素缓存模块中对应FID字段值的实体要素的属性。从对应图层的内存和数据库文件的FID字段值对应表中,获取此FID字段值对应的数据库文件中的FID字段值,根据获取的FID字段值,将更新属性保存到更新实体要素属性缓存模块中。
步骤三:根据保留的FID字段值,将更新属性保存到更新实体要素属性缓存模块中。
步骤205,将所述当前编辑索引更新为所述指定编辑索引;
步骤206,将所述当前画布更新为所述目标画布。
在本发明实施例中,步骤205-206的具体实施过程与上述步骤104-105类似,在此不再赘述。
在本发明的另一实施例中,所述GIS测图软件还包括缓存模块,所述方法还包括:
当在所述当前画布上接收到用户输入的编辑操作时,新建与所述编辑操作对应的待判断编辑单元;
判断所述待判断编辑单元对应的待判断编辑索引与所述历史列表的栈顶编辑索引是否一致;
若一致,则存储所述待判断编辑单元到所述缓存模块,生成新建画布;
更新所述栈顶编辑索引为所述待判断编辑索引;
将所述当前画布更新为所述新建画布。
在实际操作中,新建与所述编辑操作对应的待判断编辑单元的步骤通过以下步骤S31-S34实现:
S31、增加实体要素的编辑单元的构建操作步骤:
步骤一:修改当前软件的全局变量addedId的值(默认的初始值为-1),让其值减少1。
步骤二:修改实体要素的FID字段值为addedId。
步骤三:保留此实体要素在内存中,即此要素与此编辑单元绑定。
S32、删除实体要素的编辑单元的构建操作步骤:
读取要删除的实体要素的FID字段值,如果FID字段值为负数:从对应图层的新增实体要素缓存模块中获取此FID字段值的实体要素。否则:从数据库文件中读取此FID字段值的实体要素。保留此实体要素在内存中,即此要素与此编辑单元绑定。
S33、更新实体要素的几何数据的编辑单元的构建操作步骤:
步骤一:保留更新实体要素的FID字段值及更新的几何。
步骤二:如果对应图层的新增实体要素缓存模块中存在FID字段值,从新增实体要素缓存模块中获取对应实体要素的几何作为旧几何,否则进入步骤三。
步骤三:如果对应图层的更新实体要素的几何缓存模块中存在FID字段值,从对应图层的更新实体要素的几何缓存模块中获取对应实体要素的几何作为旧几何,否则进入步骤四。
步骤四:从数据库文件中获取对应实体要素的几何作为旧几何。
S34、更新实体要素的属性数据的编辑单元的构建操作步骤:
步骤一:保留更新实体要素的FID字段值及更新的属性。
步骤二:如果对应图层的新增实体要素缓存模块中存在保留的FID字段值,从新增实体要素缓存模块中获取对应实体要素的属性数据作为旧属性,否则进入步骤三。
步骤三:如果对应图层的更新实体要素的属性缓存模块中存在FID字段值,从对应图层的更新实体要素的属性缓存模块中获取对应实体要素的几何作为旧属性,否则进入步骤四。
步骤四:从数据库文件中获取对应实体要素的属性作为旧属性。
进一步地,所述方法还包括:
若不一致,则将所述栈顶编辑索引与所述待判断编辑索引之间的编辑索引作为待出栈索引;
对所述待出栈索引对应的编辑单元逐一出栈;
存储所述待判断编辑单元到所述缓存模块,生成新建画布。
在本发明的可选实施例中,所述GIS测图软件还包括数据库,所述方法还包括:
当接收到用户输入的保存操作时,或者所述GIS测图软件的启动时间超过预设时间阈值时,将所述编辑单元栈中的矢量数据保存到所述数据库。
在具体实现中,将图层模块中各种缓存模块数据写入到数据库文件步骤:
步骤一:将每一条新增实体要素缓存模块中的新增的实体要素写入到数据库文件中,同时根据写入数据库文件中主键值的改变,其主键值作为新的FID字段值,更新内存和数据库文件的FID字段值对应表中内存FID字段值所对应的FID字段值。接着清空新增实体要素缓存模块中所有保存数据。
步骤二:将每一条更新实体要素几何缓存模块中的几何数据,FID字段值作为数据库文件的查询主键,把数据库中与之关联几何进行更新。接着清空更新实体要素几何缓存模块中所有保存数据。
步骤三:将每一条更新实体要素属性缓存模块中的几何数据,FID字段值作为数据库文件的查询主键,把数据库中与之关联属性进行更新。接着清空更新实体要素属性缓存模块中所有保存数据。
步骤四:将每一条删除实体要素缓存模块中的FID字段值数据,FID字段值作为数据库文件的查询主键,把数据库中与之关联进行删除。删除内存和数据库文件的FID字段值对应表对应的记录。接着清空删除实体要素缓存模块中所有保存数据。
在本发明实施例中,当在历史列表中接收到用户的点击操作时,通过检测点击操作的点击位置,确定历史列表中的指定编辑索引;再通过将指定编辑索引与当前编辑索引之间的编辑索引作为目标编辑索引,对目标编辑索引对应的编辑单元执行调整操作,从而生成目标画布;最后将当前编辑索引更新为指定编辑索引,将当前画布更新为目标画布,从而解决现有技术由于GIS测图软件编辑的数据量较多,所导致的编辑操作响应较慢,矢量数据容易保存出错的技术问题,进而提高在矢量数据较多的情况下编辑操作的响应速度以及数据存储准确率。
参见图7,图7示出了本发明实施例的GIS测图软件的使用步骤流程图,包括:
1、判断用户编辑操作的对象;若是操作当前画布的矢量实体要素,则进入步骤2;如果是操作历史列表上的编辑索引,则进入步骤3;若是达到设定的保存时间周期或者用户手动保存,则进入步骤4。
2、根据用户的编辑操作新建相应的编辑单元,调用其构建编辑单元的操作步骤,再调用其恢复编辑单元的操作步骤,进入步骤5。
3、判断编辑索引的点击位置;若是点击的编辑索引(即指定编辑索引)处于当前编辑索引的上方,则将当前编辑索引与指定编辑索引之间的编辑索引所对应的编辑单元逐一做撤销操作;如果处于下方,则将当前编辑索引与指定编辑索引之间的编辑索引所对应的编辑单元逐一做恢复操作;更新当前索引为指定编辑索引;刷新当前画布;返回步骤1。
4、将历史列表中已更新的矢量数据保存到数据库文件,也就是将图层模块中各种缓存模块数据写入到数据库文件;返回步骤1。
5、判断当前索引与栈顶索引是否一致;如果栈顶索引和当前索引一致,则把新构建的编辑单元入栈,更新栈顶索引和当前索引为当前栈顶;如果栈顶索引和当前索引不一致,先把当前索引与栈顶索引之间的编辑单元逐一出栈,释放其占用的内存,把新构建的编辑单元入栈,更新栈顶索引和当前索引为当前栈顶;刷新当前画布;返回步骤1。
参见图8,图8示出了本发明实施例的一种历史列表的操作装置的结构框图。
本发明实施例提供的一种历史列表的操作装置,应用于GIS测图软件,所述GIS测图软件包括当前画布和历史列表,所述历史列表包括多条编辑索引,每条所述编辑索引具有对应的一个或多个编辑单元,所述装置包括:
指定编辑索引确定模块801,用于当在所述历史列表接收到用户输入的点击操作时,检测所述点击操作的点击位置,将所述点击位置对应的编辑索引作为指定编辑索引;
目标编辑索引确定模块802,用于将所述指定编辑索引与当前编辑索引之间的编辑索引作为目标编辑索引;其中,所述当前编辑索引为与所述当前画布对应的编辑单元的编辑索引;
调整模块803,用于对所述目标编辑索引对应的编辑单元执行调整操作,生成目标画布;
索引更新模块804,用于将所述当前编辑索引更新为所述指定编辑索引;
第一画布更新模块805,用于将所述当前画布更新为所述目标画布。
可选地,所述调整操作包括撤销操作和恢复操作,所述调整模块803包括:
撤销模块,用于当所述指定编辑索引的位置位于所述当前编辑索引的位置的上方时,对所述目标编辑索引对应的编辑单元执行撤销操作,生成目标画布;
恢复模块,用于当所述指定编辑索引的位置位于所述当前编辑索引的位置的下方时,对所述目标编辑索引对应的编辑单元执行恢复操作,生成目标画布。
可选地,所述GIS测图软件还包括缓存模块,所述装置还包括:
编辑单元新建模块,用于当在所述当前画布上接收到用户输入的编辑操作时,新建与所述编辑操作对应的待判断编辑单元;
索引判断模块,用于判断所述待判断编辑单元对应的待判断编辑索引与所述历史列表的栈顶编辑索引是否一致;
第一编辑单元存储模块,用于若一致,则存储所述待判断编辑单元到所述缓存模块,生成新建画布;
栈顶索引更新模块,用于更新所述栈顶编辑索引为所述待判断编辑索引;
第二画布更新模块,用于将所述当前画布更新为所述新建画布。
可选地,所述装置还包括:
待出栈索引确定模块,用于若不一致,则将所述栈顶编辑索引与所述待判断编辑索引之间的编辑索引作为待出栈索引;
出栈模块,用于对所述待出栈索引对应的编辑单元逐一出栈;
第二编辑单元存储模块,用于存储所述待判断编辑单元到所述缓存模块,生成新建画布。
可选地,所述GIS测图软件还包括数据库,所述装置还包括:
数据库保存模块,用于当接收到用户输入的保存操作时,或者所述GIS测图软件的启动时间超过预设时间阈值时,将所述编辑单元栈中的矢量数据保存到所述数据库。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种历史列表的操作方法,其特征在于,应用于GIS测图软件,所述GIS测图软件包括当前画布和历史列表,所述历史列表包括多条编辑索引,每条所述编辑索引具有对应的一个或多个编辑单元,所述方法包括:
当在所述历史列表接收到用户输入的点击操作时,检测所述点击操作的点击位置,将所述点击位置对应的编辑索引作为指定编辑索引;
将所述指定编辑索引与当前编辑索引之间的编辑索引作为目标编辑索引;其中,所述当前编辑索引为与所述当前画布对应的编辑单元的编辑索引;
对所述目标编辑索引对应的编辑单元执行调整操作,生成目标画布;
将所述当前编辑索引更新为所述指定编辑索引;
将所述当前画布更新为所述目标画布。
2.根据权利要求1所述的方法,其特征在于,所述调整操作包括撤销操作和恢复操作,所述对所述目标编辑索引对应的编辑单元执行调整操作,生成目标画布的步骤,包括:
当所述指定编辑索引的位置位于所述当前编辑索引的位置的上方时,对所述目标编辑索引对应的编辑单元执行撤销操作,生成目标画布;
当所述指定编辑索引的位置位于所述当前编辑索引的位置的下方时,对所述目标编辑索引对应的编辑单元执行恢复操作,生成目标画布。
3.根据权利要求1所述的方法,其特征在于,所述GIS测图软件还包括缓存模块,所述方法还包括:
当在所述当前画布上接收到用户输入的编辑操作时,新建与所述编辑操作对应的待判断编辑单元;
判断所述待判断编辑单元对应的待判断编辑索引与所述历史列表的栈顶编辑索引是否一致;
若一致,则存储所述待判断编辑单元到所述缓存模块,生成新建画布;
更新所述栈顶编辑索引为所述待判断编辑索引;
将所述当前画布更新为所述新建画布。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若不一致,则将所述栈顶编辑索引与所述待判断编辑索引之间的编辑索引作为待出栈索引;
对所述待出栈索引对应的编辑单元逐一出栈;
存储所述待判断编辑单元到所述缓存模块,生成新建画布。
5.根据权利要求1所述的方法,其特征在于,所述GIS测图软件还包括数据库,所述方法还包括:
当接收到用户输入的保存操作时,或者所述GIS测图软件的启动时间超过预设时间阈值时,将所述编辑单元栈中的矢量数据保存到所述数据库。
6.一种历史列表的操作装置,其特征在于,应用于GIS测图软件,所述GIS测图软件包括当前画布和历史列表,所述历史列表包括多条编辑索引,每条所述编辑索引具有对应的一个或多个编辑单元,所述装置包括:
指定编辑索引确定模块,用于当在所述历史列表接收到用户输入的点击操作时,检测所述点击操作的点击位置,将所述点击位置对应的编辑索引作为指定编辑索引;
目标编辑索引确定模块,用于将所述指定编辑索引与当前编辑索引之间的编辑索引作为目标编辑索引;其中,所述当前编辑索引为与所述当前画布对应的编辑单元的编辑索引;
调整模块,用于对所述目标编辑索引对应的编辑单元执行调整操作,生成目标画布;
索引更新模块,用于将所述当前编辑索引更新为所述指定编辑索引;
第一画布更新模块,用于将所述当前画布更新为所述目标画布。
7.根据权利要求6所述的装置,其特征在于,所述调整操作包括撤销操作和恢复操作,所述调整模块包括:
撤销模块,用于当所述指定编辑索引的位置位于所述当前编辑索引的位置的上方时,对所述目标编辑索引对应的编辑单元执行撤销操作,生成目标画布;
恢复模块,用于当所述指定编辑索引的位置位于所述当前编辑索引的位置的下方时,对所述目标编辑索引对应的编辑单元执行恢复操作,生成目标画布。
8.根据权利要求6所述的装置,其特征在于,所述GIS测图软件还包括缓存模块,所述装置还包括:
编辑单元新建模块,用于当在所述当前画布上接收到用户输入的编辑操作时,新建与所述编辑操作对应的待判断编辑单元;
索引判断模块,用于判断所述待判断编辑单元对应的待判断编辑索引与所述历史列表的栈顶编辑索引是否一致;
第一编辑单元存储模块,用于若一致,则存储所述待判断编辑单元到所述缓存模块,生成新建画布;
栈顶索引更新模块,用于更新所述栈顶编辑索引为所述待判断编辑索引;
第二画布更新模块,用于将所述当前画布更新为所述新建画布。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
待出栈索引确定模块,用于若不一致,则将所述栈顶编辑索引与所述待判断编辑索引之间的编辑索引作为待出栈索引;
出栈模块,用于对所述待出栈索引对应的编辑单元逐一出栈;
第二编辑单元存储模块,用于存储所述待判断编辑单元到所述缓存模块,生成新建画布。
10.根据权利要求6所述的装置,其特征在于,所述GIS测图软件还包括数据库,所述装置还包括:
数据库保存模块,用于当接收到用户输入的保存操作时,或者所述GIS测图软件的启动时间超过预设时间阈值时,将所述编辑单元栈中的矢量数据保存到所述数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011025084.6A CN112181248B (zh) | 2020-09-25 | 2020-09-25 | 一种历史列表的操作方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011025084.6A CN112181248B (zh) | 2020-09-25 | 2020-09-25 | 一种历史列表的操作方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112181248A true CN112181248A (zh) | 2021-01-05 |
CN112181248B CN112181248B (zh) | 2022-04-12 |
Family
ID=73944898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011025084.6A Active CN112181248B (zh) | 2020-09-25 | 2020-09-25 | 一种历史列表的操作方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181248B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116186815A (zh) * | 2023-04-25 | 2023-05-30 | 北京国科恒通科技股份有限公司 | 用于电网图模编辑的数据处理方法、装置、介质和设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090182558A1 (en) * | 1998-09-18 | 2009-07-16 | Minspeed Technologies, Inc. (Newport Beach, Ca) | Selection of scalar quantixation (SQ) and vector quantization (VQ) for speech coding |
CN107798084A (zh) * | 2017-10-17 | 2018-03-13 | 广东广业开元科技有限公司 | 一种web前端页面的可视化编辑生成系统及装置 |
-
2020
- 2020-09-25 CN CN202011025084.6A patent/CN112181248B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090182558A1 (en) * | 1998-09-18 | 2009-07-16 | Minspeed Technologies, Inc. (Newport Beach, Ca) | Selection of scalar quantixation (SQ) and vector quantization (VQ) for speech coding |
CN107798084A (zh) * | 2017-10-17 | 2018-03-13 | 广东广业开元科技有限公司 | 一种web前端页面的可视化编辑生成系统及装置 |
Non-Patent Citations (2)
Title |
---|
711501594: "C#实现撤销与重做", 《腾讯游戏学院》 * |
GARY SHERMAN: "QGIS Desktop 3.10.1", 《QGIS》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116186815A (zh) * | 2023-04-25 | 2023-05-30 | 北京国科恒通科技股份有限公司 | 用于电网图模编辑的数据处理方法、装置、介质和设备 |
CN116186815B (zh) * | 2023-04-25 | 2024-05-28 | 北京国科恒通科技股份有限公司 | 用于电网图模编辑的数据处理方法、装置、介质和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112181248B (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108319602B (zh) | 数据库管理方法及数据库系统 | |
US8527556B2 (en) | Systems and methods to update a content store associated with a search index | |
US8924355B1 (en) | Checkpoint restart | |
US7647361B2 (en) | Automatically maintaining metadata in a file backup system | |
CN109542682B (zh) | 一种数据备份方法、装置、设备和存储介质 | |
EP2562657B1 (en) | Management of update transactions and crash recovery for columnar database | |
US20120191655A1 (en) | Method for Backing up Terminal Data and System Thereof | |
CN107229540A (zh) | 一种基于时间点的数据库恢复方法及系统 | |
CN108875077A (zh) | 数据库的列存储方法、装置、服务器及存储介质 | |
CN112181248B (zh) | 一种历史列表的操作方法和装置 | |
CN109408539B (zh) | 数据操作方法、装置、服务器和存储介质 | |
CN113342741B (zh) | 快照实现方法及装置、电子设备及计算机可读存储介质 | |
CN115905114B (zh) | 元数据的批量更新方法、系统、电子设备及可读存储介质 | |
WO2020192663A1 (zh) | 一种数据管理方法及相关设备 | |
CN109325005B (zh) | 一种数据处理方法和电子设备 | |
TWI740429B (zh) | 管理資料備份的方法及系統 | |
CN116107807A (zh) | 数据库中数据备份时获取全局一致性点位的方法及装置 | |
JP3957464B2 (ja) | データ更新装置 | |
CN107491363A (zh) | 一种基于Linux内核的存储卷的快照方法及装置 | |
JP3772105B2 (ja) | データベース管理装置、方法、プログラム及び記録媒体 | |
US20100094804A1 (en) | Method and Device for Updating a Database, and Computer Program Product | |
CN117131023B (zh) | 数据表处理方法、装置、计算机设备和可读存储介质 | |
CN117407359A (zh) | 一种协同文档的版本回退方法、装置、电子设备及介质 | |
CN112612648B (zh) | 一种SQL Server数据库恢复方法、终端设备及存储介质 | |
JPH10133934A (ja) | 分散型文書管理システムおよびそれを実現するプログラム記憶媒体 |
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 |