本申请涉及水上目标监控技术领域,特别是涉及一种水上目标位置信息查询方法、系统、装置、计算机设备和存储介质。
背景技术:
随着海运事业以及国防科技的发展,海事目标追踪和管理变得尤其重要。目前,已实现水上移动目标的精准定位,可通过定位系统获取水上目标的实时位置,但由于水上目标数量随时间变化不定,有时会出现大量目标涌现的情形,此时的数据处理系统对于大量目标位置的查询仍然存在实时性不高的问题。
技术实现要素:
基于此,有必要针对上述技术问题,提供一种水上目标位置信息查询方法、系统、装置、计算机设备和存储介质。
一种水上目标位置信息查询方法,所述方法包括:
从卡夫卡消息队列获取观测到的水上目标的待存储位置参数;所述待存储位置参数中包括目标标识码和待存储时间戳;
当缓存数据库中存储有所述目标标识码对应的已有时间戳时,若所述待存储时间戳晚于所述已有时间戳,则将所述待存储位置参数替换已存储的所述目标标识码的位置参数,并将所述待存储位置参数作为最新位置参数;
当所述缓存数据库中未存储有所述目标标识码对应的时间戳时,将所述待存储位置参数存储至所述缓存数据库,并将所述待存储位置参数作为最新位置参数;
响应于目标位置查询指令,调用目标查询函数从所述缓存数据库中获取待查询目标的所述最新位置参数。
在其中一个实施例中,所述从卡夫卡消息队列获取观测到的水上目标的待存储位置参数之后,还包括:
当所述缓存数据库中存储有所述目标标识码对应的已有时间戳时,若所述待存储时间戳早于所述已有时间戳,则不更新所述已有时间戳。
在其中一个实施例中,所述方法还包括:
通过预设程序从所述缓存数据库中每隔预设时间进行一次轮询;
通过所述轮询获取全部所述目标标识码对应的位置参数;
将每次轮询获取的全部目标识别码对应的位置参数存入预设的键值中;
响应于全量数据查询指令,调用键值查询函数获取所述全部目标识别码对应的位置参数,作为所述全部目标识别码对应的实时位置参数。
在其中一个实施例中,所述响应于全量数据查询指令,调用键值查询函数获取所述全部目标识别码对应的位置参数,作为所述全部目标识别码对应的实时位置参数之后,所述方法还包括:
响应于第一集合查询指令,确定目标圆形水域的圆心坐标和半径;
计算各个目标识别码对应的实时位置参数与所述圆心坐标之间的距离;
将所述距离小于或者等于所述半径的目标识别码对应的位置参数存入第一集合中;
反馈所述第一集合。
在其中一个实施例中,所述响应于全量数据查询指令,调用键值查询函数获取所述全部目标识别码对应的位置参数,作为所述全部目标识别码对应的实时位置参数之后,所述方法还包括:
响应于第二集合查询指令,根据所述第二集合查询指令中的多边形顶点坐标确定多边形水域;
判断各个目标识别码对应的实时位置参数是否位于所述多边形水域内;
若是,则将所述目标识别码对应的实时位置参数存入第二集合中;
反馈所述第二集合。
一种水上目标位置信息查询系统,所述系统包括:终端设备、缓存数据库和卡夫卡消息队列;其中,
所述卡夫卡消息队列,用于获取观测到的水上目标的待存储位置参数;所述待存储位置参数中包括目标标识码和待存储时间戳;
所述缓存数据库,用于当存储有所述目标标识码对应的已有时间戳时,若所述待存储时间戳晚于所述已有时间戳,则将所述待存储位置参数替换掉已存储的所述目标标识码的位置参数,并将所述待存储位置参数作为最新位置参数;
所述缓存数据库,还用于当未存储有所述目标标识码对应的时间戳时,将所述待存储位置参数存储至本地,并将所述待存储位置参数作为最新位置参数;
所述终端设备,用于响应于目标位置查询指令,调用目标查询函数从所述缓存数据库中获取待查询目标的所述最新位置参数。
在其中一个系统实施例中,所述缓存数据库,还用于当存储有所述目标标识码对应的已有时间戳时,若所述待存储时间戳早于所述已有时间戳,则不更新所述已有时间戳。
一种水上目标位置信息查询装置,所述装置包括:
参数获取模块,用于从卡夫卡消息队列获取观测到的水上目标的待存储位置参数;所述待存储位置参数中包括目标标识码和待存储时间戳;
参数存储模块,用于当缓存数据库中存储有所述目标标识码对应的已有时间戳时,若所述待存储时间戳晚于所述已有时间戳,则将所述待存储位置参数替换已存储的所述目标标识码的位置参数,并将所述待存储位置参数作为最新位置参数;
所述参数存储模块,还用于当所述缓存数据库中未存储有所述目标标识码对应的时间戳时,将所述待存储位置参数存储至所述缓存数据库,并将所述待存储位置参数作为最新位置参数;
参数查询模块,用于响应于目标位置查询指令,调用目标查询函数从所述缓存数据库中获取待查询目标的所述最新位置参数。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述的水上目标位置信息查询方法实施例中的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的水上目标位置信息查询方法实施例中的步骤。
上述水上目标位置信息查询方法、系统、装置、计算机设备和存储介质,通过从卡夫卡消息队列中获取观测到的水上目标的待存储位置参数,该待存储位置参数中包括目标标识码和待存储时间戳;当缓存数据库中存储有上述目标标标识码对应的已有时间戳时,若上述待存储时间戳晚于上述已有时间戳,则将上述待存储位置参数替换已存储的上述目标标识码的位置参数,并将上述待存储位置参数作为最新位置参数;当缓存数据库中未存储有上述目标标识码对应的时间戳时,将上述待存储位置参数存储至上述缓存数据库,并将上述待存储位置参数作为最新位置参数;响应于目标位置查询指令,调用目标查询函数从上述缓存数据库中获取待查询目标的上述最新位置参数。该方法能够实现实时且准确地更新缓存数据库中的水上目标的位置参数,使得缓存数据库中存储的水上目标的位置参数总是保持最新状态,进一步地,保证了用户能够随时从缓存数据库中获取用户所述的实时位置参数。
附图说明
图1为一个实施例中水上目标位置信息查询方法的应用环境图;
图2为一个实施例中水上目标位置信息查询方法的流程示意图;
图3为一个实施例中水上目标位置信息查询装置的结构框图;
图4为一个实施例中计算机设备的内部结构图;
图5为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的水上目标位置信息查询方法,可以应用于如图1所示的应用环境中。其中,终端101可以从缓存数据库102读取或写入数据。缓存数据库102还可以通过网络与卡夫卡消息队列服务器进行通信,获取卡夫卡消息队列中的数据;其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
在一个实施例中,如图2所示,提供了一种水上目标位置信息查询方法,以该方法应用于图1中的终端101为例进行说明,包括以下步骤:
步骤s201,从卡夫卡消息队列获取观测到的水上目标的待存储位置参数;待存储位置参数中包括目标标识码和待存储时间戳;
其中,卡夫卡(kafka)消息队列是基于kafka服务器构建的,kafka是由apache软件基金会开发的一个开源流处理平台,由scala和java编写。kafka是一种高吞吐量的分布式发布订阅消息系统,也是一种通过集群来提供实时消息的消息系统。它可以处理消费者在网站中的所有动作流数据。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。且在kafka中可实现数据备份功能,若其中有一个分区被破坏,则另一分区中存有该分区数据的副本,保障了数据的安全。水上目标的位置参数中包括目标标识码、经度、纬度和时间戳,例如位置信息1:(id:2,lon:111.2,lat:22.3,time:20210118091500),其中,id表示目标标识码,该标识码可唯一地标识某一目标;lon表示经度,lat表示纬度,time表示时间戳。
具体地,通过卡夫卡消息队列获取观测到的水上目标的待存储位置参数,每条待存储位置参数的数据格式中包含目标标识码和待存储时间戳,例如从卡夫卡消息队列接收水上目标的待存储位置参数如下:
位置信息1:(id:2,lon:111.2,lat:22.3,time:20210118091500)
位置信息2:(id:3,lon:112.5,lat:22.2,time:20210118091500)
位置信息3:(id:2,lon:111.5,lat:22.2,time:20210118091502)
位置信息4:(id:4,lon:113.5,lat:2.2,time:20210118091503)
位置信息5:(id:2,lon:111.5,lat:22.2,time:20210118091504)
位置信息6:(id:1,lon:113.5,lat:22.2,time:20210118091508)
步骤s202,当缓存数据库中存储有上述目标标识码对应的已有时间戳时,若待存储时间戳晚于已有时间戳,则将待存储位置参数替换已存储的上述目标标识码的位置参数,并将待存储位置参数作为最新位置参数;
其中,缓存数据库为redis数据库,redis数据库是一种nosql数据库,它的数据是保存在内存中,而非磁盘中,redis可以定时吧内存出具同步到磁盘,即可以将数据持久化,并且比memcached支持更多的数据结构。
具体地,一般来讲,从卡夫卡消息队列中获取的水上目标的时间戳一般是最新时间戳,即该待存储时间戳为最新时间戳,是晚于已存储的时间戳的,当获取到一条新的数据时,例如上述位置信息1:(id:2,lon:111.2,lat:22.3,time:20210118091500),系统会根据其中的目标标识码id:2检测在缓存数据库中是否存在该目标标识码对应的位置参数,若存在,且已有时间戳是比上述待存储的位置参数中的时间戳更旧的时间戳,则将待存储位置参数替换掉已存储的目标标识码的位置参数,并将待存储位置参数作为最新位置参数。具体可调用键值设置函数setkey(key,value)存储相应的位置参数,例如setkey(id2,相关位置信息值)。
步骤s203,当缓存数据库中未存储有目标标识码对应的时间戳时,将上述待存储位置参数存储至缓存数据库,并将上述待存储位置参数作为最新位置参数。
具体地,当系统根据接收到的目标标识码在缓存数据库中未检测到与该目标标识码对应的位置参数时,则将从卡夫卡消息队列中获取到的额水上目标的待存储位置存储存入缓存数据库。
步骤s204,响应于目标位置查询指令,调用目标查询函数从所述缓存数据库中获取待查询目标的所述最新位置参数。
具体地,若需要获取某一个水上目标的实时位置,则可通过调用相应的函数完成实时位置的获取,例如需要查询单个水上移动目标实时位置信息,则调用缓存数据库getkey(id)函数获取,其中id为所需的目标标识码。
上述实施例,通过从卡夫卡消息队列中获取观测到的水上目标的待存储位置参数,该待存储位置参数中包括目标标识码和待存储时间戳;当缓存数据库中存储有上述目标标标识码对应的已有时间戳时,若上述待存储时间戳晚于上述已有时间戳,则将上述待存储位置参数替换已存储的上述目标标识码的位置参数,并将上述待存储位置参数作为最新位置参数;当缓存数据库中未存储有上述目标标识码对应的时间戳时,将上述待存储位置参数存储至上述缓存数据库,并将上述待存储位置参数作为最新位置参数;响应于目标位置查询指令,调用目标查询函数从上述缓存数据库中获取待查询目标的上述最新位置参数。该方法能够实现实时且准确地更新缓存数据库中的水上目标的位置参数,使得缓存数据库中存储的水上目标的位置参数总是保持最新状态,进一步地,保证了用户能够随时从缓存数据库中获取用户所述的实时位置参数。
在一实施例中,上述步骤s201之后,还包括:当缓存数据库中存储有上述目标标识码对应的已有时间戳时,若该待存储时间戳早于已有时间戳,则不更新已有时间戳。
具体地,由于通过kafka读取相关信息,可能存在时间戳更旧的信息却后来才到的情况,例如位置信息:
位置信息1:(id:2,lon:111.02,lat:22.03,time:20210118091501)
位置信息2:(id:2,lon:111.03,lat:22.02,time:20210118091500)
位置信息3:(id:2,lon:111.04,lat:22.02,time:20210118091502)
收到位置信息1时,因为缓存数据库中还没有id2的相关信息,则将位置信息1中的相关信息存入缓存数据库中。调用函数setkey(id2,位置信息1)进行存储。
收到位置信息2时,读取当前id2实时位置的时间戳为20210118091501,因为时间20210118091500比20210118091501更前,所以不更新缓存数据库id2的信息;
当收到位置信息3时,读取当前id2实时位置的时间戳为20210118091501,因为时间20210118091502比20210118091501时间更新,则更新id2的实时位置信息,则调用setkey(id2,位置信息3)。
上述实施例,通过检测目标标识码对应的时间戳的时间关系,保留更新的时间戳对应的位置参数,替换更旧的时间戳对应的位置参数,保证了缓存数据库中的位置信息的实时更新,避免了例外情况。
在一实施例中,上述方法还包括:
通过预设程序从缓存数据库中每隔预设时间进行一次轮询;通过轮询获取全部目标标识码对应的位置参数;将每次轮询获取的全部目标识别码对应的位置参数存入预设的键值中;响应于全量数据查询指令,调用键值查询函数获取所述全部目标识别码对应的位置参数,作为所述全部目标识别码对应的实时位置参数。
具体地,假设缓存数据库中现有如下数据:
位置信息1:(id:2,lon:111.2,lat:22.3,time:20210118091500)
位置信息2:(id:3,lon:112.5,lat:22.2,time:20210118091500)
位置信息3:(id:2,lon:111.5,lat:22.2,time:20210118091502)
位置信息4:(id:4,lon:113.5,lat:22.2,time:20210118091503)
位置信息5:(id:2,lon:111.5,lat:22.2,time:20210118091504)
位置信息6:(id:1,lon:113.5,lat:22.2,time:20210118091508)
使用预设程序不断从缓存数据库中循环获取每个水上移动目标的实时位置信息,并计入一个集合中,例如集合a为获取到的id为(2,3,4,1)的实时位置,将获取到的id的最新实时位置参数用一个表记录下来,当轮询完一次所有的id后,将所有的位置参数信息设置到一个缓存数据库键值中去,例如setkey(allpoint,第一轮轮询得到的所有id的实时位置)
设置完成后进行第二轮的轮询,将第二轮轮询得到的所有id的实时位置信息存入缓存数据库的一个键值中。
setkey(allpoint,第二轮轮询得到的所有id的实时位置),该第二轮轮询得到新键值覆盖原来已存储的键值,依次类推,因为有之前的程序轮询,所有将可以快速得到全量的实时位置信息,只需要调用缓存数据库获取键值的get函数:getkey(allpoint)得到。
上述实施例,通过预设程序定期针对缓存数据库进行轮询,获取最新位置参数,并将位置参数保存至预设的键值中,可以实现后续快速获取全量数据的实时位置参数。
在一实施例中,上述响应于全量数据查询指令,调用键值查询函数获取所述全部目标识别码对应的位置参数,作为所述全部目标识别码对应的实时位置参数之后,还包括:
响应于第一集合查询指令,确定目标圆形水域的圆心坐标和半径;计算各个目标识别码对应的实时位置参数与圆心坐标之间的距离;将距离小于或者等于半径的目标识别码对应的位置参数存入第一集合中;反馈第一集合。
其中,第一集合查询指令为用户输入的查询圆形水域目标位置参数的查询指令,其中包括两个参数,分别为圆心坐标和半径。
具体地,终端101获取用户输入的第一集合查询指令,根据该指令确定圆心坐标和半径,调用getkey(allpoint)得到所有水上移动目标实时位置信息;计算得到的所有id的实时位置与圆心坐标的距离;判断该距离是否小于参数预设的半径的数值;如果id实时位置与圆心距离小于半径值则记入结果集合,即第一集合;返回第一集合至终端101的显示装置。
上述实施例,通过设置带有具体参数的查询指令,快速确定圆形水域,并根据圆心坐标、半径与目标的位置关系确定圆形水域内的目标集合,有利于快速获取圆形水域内的目标位置。
在一实施例中,上述响应于全量数据查询指令,调用键值查询函数获取所述全部目标识别码对应的位置参数,作为所述全部目标识别码对应的实时位置参数之后,还包括:
响应于第二集合查询指令,根据第二集合查询指令中的多边形顶点坐标确定多边形水域;判断各个目标识别码对应的实时位置参数是否位于多边形水域内;若是,则将目标识别码对应的实时位置参数存入第二集合中;反馈第二集合。
其中,第二集合查询指令是指用户输入的多边形水域目标查询指令,该指令中包括用于确定多边形形状的顶点坐标。
具体地,终端101获取用户输入的第二集合查询指令,根据该指令确定多边形范围,调用getkey(allpoint)得到所有水上移动目标实时位置信息;根据输入参数初始化一个多边形区域;获取每一个水上移动目标id的实时位置;判断该位置是否在多边形内;该位置在多边形内则记入结果集合,即第二集合;返回该第二集合至终端101的显示装置。
上述实施例,通过设置带有具体参数的查询指令,快速确定多边形水域,并根据多边形与目标的位置关系确定多边形水域内的目标集合,有利于快速获取多边形水域内的目标位置。
在一实施例中,还提供了一种水上目标位置信息查询系统,如图2所示,该系统包括:终端设备101、缓存数据库102和卡夫卡消息队列103;
其中,卡夫卡消息队列103,用于获取观测到的水上目标的待存储位置参数;待存储位置参数中包括目标标识码和待存储时间戳;
缓存数据库102,用于当存储有目标标识码对应的已有时间戳时,若待存储时间戳晚于已有时间戳,则将待存储位置参数替换掉已存储的目标标识码的位置参数,并将待存储位置参数作为最新位置参数;
缓存数据库102,还用于当未存储有目标标识码对应的时间戳时,将待存储位置参数存储至本地,并将待存储位置参数作为最新位置参数;
终端设备101,用于响应于目标位置查询指令,调用目标查询函数从缓存数据库中获取待查询目标的最新位置参数。
在一实施例中,上述缓存数据库102,还用于当存储有所述目标标识码对应的已有时间戳时,若所述待存储时间戳早于所述已有时间戳,则不更新所述已有时间戳。
在一实施例中,上述终端设备101,进一步用于:通过预设程序从所述缓存数据库中每隔预设时间进行一次轮询;通过所述轮询获取全部所述目标标识码对应的位置参数;将每次轮询获取的全部目标识别码对应的位置参数存入预设的键值中;响应于全量数据查询指令,调用键值查询函数获取所述全部目标识别码对应的位置参数,作为所述全部目标识别码对应的实时位置参数。
在一实施例中,上述终端设备101,还用于:响应于第一集合查询指令,确定目标圆形水域的圆心坐标和半径;计算各个目标识别码对应的实时位置参数与所述圆心坐标之间的距离;将所述距离小于或者等于所述半径的目标识别码对应的位置参数存入第一集合中;反馈所述第一集合。
在一实施例中,上述终端设备101,还用于:响应于第二集合查询指令,根据所述第二集合查询指令中的多边形顶点坐标确定多边形水域;判断各个目标识别码对应的实时位置参数是否位于所述多边形水域内;若是,则将所述目标识别码对应的实时位置参数存入第二集合中;反馈所述第二集合。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图上述中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供了一种水上目标位置信息查询装置300,包括:参数获取模块301、参数存储模块302和参数查询模块303,其中:
参数获取模块301,用于从卡夫卡消息队列获取观测到的水上目标的待存储位置参数;所述待存储位置参数中包括目标标识码和待存储时间戳;
参数存储模块302,用于当缓存数据库中存储有所述目标标识码对应的已有时间戳时,若所述待存储时间戳晚于所述已有时间戳,则将所述待存储位置参数替换已存储的所述目标标识码的位置参数,并将所述待存储位置参数作为最新位置参数;
所述参数存储模块302,还用于当所述缓存数据库中未存储有所述目标标识码对应的时间戳时,将所述待存储位置参数存储至所述缓存数据库,并将所述待存储位置参数作为最新位置参数;
参数查询模块303,用于响应于目标位置查询指令,调用目标查询函数从所述缓存数据库中获取待查询目标的所述最新位置参数。
在一实施例中,上述参数存储模块302,还用于当所述缓存数据库中存储有所述目标标识码对应的已有时间戳时,若所述待存储时间戳早于所述已有时间戳,则不更新所述已有时间戳。
在一实施例中,上述参数查询模块303,进一步用于:通过预设程序从所述缓存数据库中每隔预设时间进行一次轮询;通过所述轮询获取全部所述目标标识码对应的位置参数;将每次轮询获取的全部目标识别码对应的位置参数存入预设的键值中;响应于全量数据查询指令,调用键值查询函数获取所述全部目标识别码对应的位置参数,作为所述全部目标识别码对应的实时位置参数。
在一实施例中,上述参数查询模块303,进一步用于:响应于第一集合查询指令,确定目标圆形水域的圆心坐标和半径;计算各个目标识别码对应的实时位置参数与所述圆心坐标之间的距离;将所述距离小于或者等于所述半径的目标识别码对应的位置参数存入第一集合中;反馈所述第一集合。
在一实施例中,上述参数查询模块303,进一步用于:响应于第二集合查询指令,根据所述第二集合查询指令中的多边形顶点坐标确定多边形水域;判断各个目标识别码对应的实时位置参数是否位于所述多边形水域内;若是,则将所述目标识别码对应的实时位置参数存入第二集合中;反馈所述第二集合。
关于水上目标位置信息查询装置的具体限定可以参见上文中对于水上目标位置信息查询方法的限定,在此不再赘述。上述水上目标位置信息查询装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储水上目标的位置参数数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种水上目标位置信息查询方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种水上目标位置信息查询方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图4-5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现如上述的水上目标位置信息查询方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述的水上目标位置信息查询方法中的步骤。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
1.一种水上目标位置信息查询方法,其特征在于,所述方法包括:
从卡夫卡消息队列获取观测到的水上目标的待存储位置参数;所述待存储位置参数中包括目标标识码和待存储时间戳;
当缓存数据库中存储有所述目标标识码对应的已有时间戳时,若所述待存储时间戳晚于所述已有时间戳,则将所述待存储位置参数替换已存储的所述目标标识码的位置参数,并将所述待存储位置参数作为最新位置参数;
当所述缓存数据库中未存储有所述目标标识码对应的时间戳时,将所述待存储位置参数存储至所述缓存数据库,并将所述待存储位置参数作为最新位置参数;
响应于目标位置查询指令,调用目标查询函数从所述缓存数据库中获取待查询目标的所述最新位置参数。
2.根据权利要求1所述的方法,其特征在于,所述从卡夫卡消息队列获取观测到的水上目标的待存储位置参数之后,还包括:
当所述缓存数据库中存储有所述目标标识码对应的已有时间戳时,若所述待存储时间戳早于所述已有时间戳,则不更新所述已有时间戳。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过预设程序从所述缓存数据库中每隔预设时间进行一次轮询;
通过所述轮询获取全部所述目标标识码对应的位置参数;
将每次轮询获取的全部目标识别码对应的位置参数存入预设的键值中;
响应于全量数据查询指令,调用键值查询函数获取所述全部目标识别码对应的位置参数,作为所述全部目标识别码对应的实时位置参数。
4.根据权利要求3所述的方法,其特征在于,所述响应于全量数据查询指令,调用键值查询函数获取所述全部目标识别码对应的位置参数,作为所述全部目标识别码对应的实时位置参数之后,所述方法还包括:
响应于第一集合查询指令,确定目标圆形水域的圆心坐标和半径;
计算各个目标识别码对应的实时位置参数与所述圆心坐标之间的距离;
将所述距离小于或者等于所述半径的目标识别码对应的位置参数存入第一集合中;
反馈所述第一集合。
5.根据权利要求3所述的方法,其特征在于,所述响应于全量数据查询指令,调用键值查询函数获取所述全部目标识别码对应的位置参数,作为所述全部目标识别码对应的实时位置参数之后,所述方法还包括:
响应于第二集合查询指令,根据所述第二集合查询指令中的多边形顶点坐标确定多边形水域;
判断各个目标识别码对应的实时位置参数是否位于所述多边形水域内;
若是,则将所述目标识别码对应的实时位置参数存入第二集合中;
反馈所述第二集合。
6.一种水上目标位置信息查询系统,其特征在于,所述系统包括:终端设备、缓存数据库和卡夫卡消息队列;其中,
所述卡夫卡消息队列,用于获取观测到的水上目标的待存储位置参数;所述待存储位置参数中包括目标标识码和待存储时间戳;
所述缓存数据库,用于当存储有所述目标标识码对应的已有时间戳时,若所述待存储时间戳晚于所述已有时间戳,则将所述待存储位置参数替换掉已存储的所述目标标识码的位置参数,并将所述待存储位置参数作为最新位置参数;
所述缓存数据库,还用于当未存储有所述目标标识码对应的时间戳时,将所述待存储位置参数存储至本地,并将所述待存储位置参数作为最新位置参数;
所述终端设备,用于响应于目标位置查询指令,调用目标查询函数从所述缓存数据库中获取待查询目标的所述最新位置参数。
7.根据权利要求6所述的系统,其特征在于,所述缓存数据库,还用于当存储有所述目标标识码对应的已有时间戳时,若所述待存储时间戳早于所述已有时间戳,则不更新所述已有时间戳。
8.一种水上目标位置信息查询装置,其特征在于,所述装置包括:
参数获取模块,用于从卡夫卡消息队列获取观测到的水上目标的待存储位置参数;所述待存储位置参数中包括目标标识码和待存储时间戳;
参数存储模块,用于当缓存数据库中存储有所述目标标识码对应的已有时间戳时,若所述待存储时间戳晚于所述已有时间戳,则将所述待存储位置参数替换已存储的所述目标标识码的位置参数,并将所述待存储位置参数作为最新位置参数;
所述参数存储模块,还用于当所述缓存数据库中未存储有所述目标标识码对应的时间戳时,将所述待存储位置参数存储至所述缓存数据库,并将所述待存储位置参数作为最新位置参数;
参数查询模块,用于响应于目标位置查询指令,调用目标查询函数从所述缓存数据库中获取待查询目标的所述最新位置参数。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
技术总结