处理位置数据的方法及相应的装置、计算机可读存储介质与流程

文档序号:22677172发布日期:2020-10-28 12:33阅读:77来源:国知局
处理位置数据的方法及相应的装置、计算机可读存储介质与流程
本公开涉及数据统计领域,具体地,涉及一种用于处理位置数据的方法及相应的装置、计算机可读存储介质。
背景技术
:用户的设备(例如,智能手机)可以运行乘车码小程序,以便用户便捷地乘坐公交或地铁。乘车码小程序具有海量的用户,例如,乘车码小程序的活跃用户高达几千万。对于乘车码小程序的每个用户而言,每次打开乘车码小程序时,该用户的设备都会自动地向数据库上报用户的全球定位系统(globalpositioningsystem,gps)位置信息。因此,乘车码小程序的所有用户上报的gps位置信息是海量的,例如一天内高达上亿条。已经提出了通过结构化查询语言(structuredquerylanguage,sql)语句查询数据库来获取所有用户的gps位置信息,并通过单个服务器对所有用户的gps位置信息进行处理以获得每个区域的用户密度,以及在地图上显示每个区域的用户密度的方案。在上述方案中,获取所有用户的gps位置信息以便对所有用户的gps位置信息进行批量处理,实时性较差。此外,在海量数据量的情况下,上述方案获得用户密度的性能依赖单个服务器的性能,性能较差。技术实现要素:为此,本公开提供了一种用于处理位置数据的方法及相应的装置、计算机可读存储介质。根据本公开的一个方面,提供了一种用于处理位置数据的方法,包括:接收多个位置点的位置数据,其中每个位置点的位置数据指示该位置点所处的地理区域和该位置点的地理位置;将每个位置点的位置数据存储至与每个位置点所处的地理区域对应的至少一个区域存储模块中;至少根据每个区域存储模块存储的至少一个位置点的地理位置,确定所述至少一个位置点中的目标第一类型点;以及将目标第一类型点的位置数据存储到数据库,其中所述目标第一类型点能够被显示。根据本公开的另一方面,提供了一种用于处理位置数据的数据处理装置,包括:接收单元,被配置为接收多个位置点的位置数据,其中每个位置点的位置数据指示该位置点所处的地理区域和该位置点的地理位置;存储单元,被配置为将每个位置点的位置数据存储至与每个位置点所处的地理区域对应的至少一个区域存储模块中;确定单元,被配置为至少根据每个区域存储模块存储的至少一个位置点的地理位置,确定所述至少一个位置点中的目标第一类型点;以及发送单元,被配置为将目标第一类型点的位置数据存储到数据库,其中所述目标第一类型点能够被显示。根据本公开的一个示例,至少一个区域存储模块被分别部署在至少一个服务器上。根据本公开的另一方面,提供了一种用于处理位置数据的数据处理装置,包括:处理器;以及存储器,其中,所述存储器中存储有计算机可读代码,所述计算机可读代码当由所述处理器运行时,执行上述方法。根据本公开的另一方面,提供了一种计算机可读存储介质,其上存储有指令,所述指令在被处理器运行时,使得所述处理器执行上述方法。附图说明通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。图1a是可在其中应用本公开的实施例的数据处理系统的示意图。图1b是可在其中应用本公开的实施例的数据处理系统的另一示意图。图1c是图1b所示的数据处理系统的一个具体示意图。图2是根据本公开实施例的由数据处理装置执行的方法的流程图。图3示出了根据本公开实施例的中心点、边界点和噪声点的示意图。图4是根据本公开实施例的数据处理装置统计每个区域存储模块存储的至少一个位置点中的目标中心点的方法的示意流程图。图5是根据本公开实施例的直接密度可达的示意图。图6是根据本公开实施例的数据处理装置通过图4所示的方法统计至少一个位置点中的目标中心点的示意图。图7是根据本公开实施例的特定地理区域的交通热力图。图8示出了根据本公开实施例的数据处理装置的结构示意图。图9示出了根据本公开实施例的计算机设备的架构。具体实施方式为了使得本公开的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本公开的示例实施例。在附图中,相同的参考标号自始至终表示相同的元件。应当理解:这里描述的实施例仅仅是说明性的,而不应被解释为限制本公开的范围。为了能够实时地显示各个地理区域的用户密度,提出了本公开的技术方案。在本公开中,按地理区域实时地存储各个地理区域的位置数据以及按地理区域实时地处理各个地理区域的位置数据,然后将处理结果汇总至数据库,从而使得通过从数据库获取处理结果即可显示各个地理区域的用户密度,实时性较好。首先,参照图1a-1c来描述可在其中应用本公开的实施例的数据处理系统的示意图。图1a是可在其中应用本公开的实施例的数据处理系统的示意图。如图1a所示,数据处理系统100包括用户1的设备110-1、用户2的设备110-2、用户3的设备110-3和用户4的设备110-4,以及数据处理装置120和数据库130。每个用户的设备可以对应一个位置点。此外,多个用户的设备可以位于相同或不同的地理区域。例如,设备110-1和设备110-2可以位于地理区域1,设备110-3和设备110-4可以位于地理区域2。此外,在图1a所示的系统中,数据处理装置120可以接收设备110-1至110-4的位置数据。在本公开中,数据处理装置120可以从各个设备的全球定位系统(globalpositioningsystem,gps)模块接收各个设备的位置数据。可替换地,数据处理装置120还可以从各个设备上运行的应用程序来接收各个设备的位置数据。例如,设备上运行的应用程序可以从该设备的gps模块采集位置数据,因此,数据处理装置120可以从该应用程序接收该设备的位置数据。这里的“应用程序”例如可以是乘车码小程序、易通行应用程序等。此外,数据处理装置120可以预先配置与每个地理区域对应的至少一个区域存储模块,以便将接收到的位置数据存储至相应的区域存储模块。例如,如图1a所示,数据处理装置120配置了与地理区域1对应的区域存储模块1-1和1-2以及配置了与地理区域2对应的区域存储模块2-1和2-2。数据处理装置120可以将位置点110-1的位置数据存储至区域存储模块1-1,将位置点110-2的位置数据存储至区域存储模块1-2,将位置点110-3的位置数据存储至区域存储模块2-1,以及将位置点110-4的位置数据存储至区域存储模块2-2。此外,数据处理装置120可以配置与每个区域存储模块对应的处理模块(例如执行器),以对各个区域存储模块中存储的位置数据分别进行处理,来获得指示各个地理区域的用户密度的处理结果。此外,数据处理装置120还可以将各个处理模块的处理结果存储至数据库130,以实现对各个地理区域的用户密度的汇总。此外,在图1a所示的系统中,数据库130可以是已有的postgresql集群。在这种情形下,数据处理装置120可以将各个处理模块的处理结果按照postgresql集群所支持的数据格式(例如,post-gis)存储至数据库130。可以通过sql语句查询数据库130,来获得各个处理模块的处理结果,从而显示各个地理区域的用户密度,例如,可以通过交通热力图的形式显示各个地理区域的用户密度。通过图1a所示的系统,可以实时地处理位置数据,并将处理结果实时地存储至数据库,而不是将多个位置点的位置数据存储至数据库后从数据库读取所有位置点的位置数据并进行批量处理来获得处理结果,实现了对多个位置点的位置数据进行流式计算而不是批量计算,从而能够实时地显示各个地理区域的用户密度。此外,在图1a所示的系统中,数据处理装置120可以是一个服务器集群。在这种情形下,上面所描述的“与每个地理区域对应的至少一个区域存储模块”可以被部署在构成上述服务器集群的至少一个服务器上。例如,该至少一个服务器中的每个服务器可以部署与一个地理区域对应的一个区域存储模块。例如,如图1a所示,数据处理装置120可以是包括服务器120-1和120-2的服务器集群,其中,服务器120-1可以部署与地理区域1对应的区域存储模块1-1和1-2中的区域存储模块1-1,服务器120-2可以部署与地理区域1对应的区域存储模块1-1和1-2中的区域存储模块1-2。类似地,服务器120-1可以部署与地理区域2对应的区域存储模块2-1和2-2中的区域存储模块2-1,而服务器120-2可以部署与地理区域2对应的区域存储模块2-1和2-2中的区域存储模块2-2。通过这种方式,在海量数据量的情况下,可以依赖多个服务器同时对位置数据进行处理,而不是依赖单个服务器对位置数据进行梳理,从而实现了分布式计算,提高了系统的计算性能,提高了系统的可扩展性。此外,在图1a所示的系统中,部署了一个装置(即数据处理装置120)来接收并存储位置数据,以及处理位置数据。在这种情形下,数据处理装置120可以是安装了kafka应用程序和spark应用程序的装置,其中kafka应用程序用于接收并存储位置数据,spark应用程序用于处理位置数据。此外,上述区域存储模块可以是kafka应用程序所配置的类别(topic)存储单元。然而本公开不限于此。根据本公开的数据处理系统的其他示例,可以部署两个装置,即接收装置和处理装置,其中接收装置用于接收并存储位置数据,而处理装置用于处理位置数据。在这种情形下,接收装置和处理装置均可以是服务器集群。图1b示出了这种示例中的数据处理系统的示意图。如图1b所示,数据处理系统100’包括包括用户1的设备110-1、用户2的设备110-2、用户3的设备110-3和用户4的设备110-4,以及接收装置121、处理装置122和数据库130。接收装置121可以是包括服务器121-1和121-2的服务器集群,其中,服务器121-1可以部署与地理区域1对应的区域存储模块1-1和与地理区域2对应的区域存储模块2-1,服务器121-2可以部署与地理区域1对应的区域存储模块2-1和与地理区域2对应的区域存储模块2-2。处理装置122可以是包括服务器122-1和122-2的服务器集群,其中,服务器122-1配置了与区域存储模块1-1和2-1对应的处理模块,服务器122-2配置了与区域存储模块1-2和2-2对应的处理模块。在这种情形下,接收装置可以是安装了kafka应用程序的装置,以及处理装置可以是安装了spark应用程序的装置。图1c是图1b所示的数据处理系统的一个具体示意图。如图1c所示,多个位置点的位置数据通过乘车码小程序上报给安装了kafka应用程序的接收装置。该接收装置将接收到的位置数据存储至相应的类别(topic)存储单元(例如,topica、topicb等)。然后,安装了spark应用程序的处理装置对每个类别存储单元中的位置数据进行处理,并将处理结果存储至postgresql集群。需要认识到,尽管在图1a-1c中示出了四个位置点、一个数据处理装置、一个接收装置、一个处理装置和一个数据库,但这只是示意性的。该系统可以包括更少或更多个位置点、和/或更多个数据处理装置、和/或更多个接收装置、更多个处理装置、和/或更多个数据库。下面将结合图2来具体描述由图1a所示的数据处理装置120执行的方法。图2是根据本公开实施例的由数据处理装置执行的方法的流程图。如图2所示,在步骤s201中,数据处理装置接收多个位置点的位置数据。根据本公开的一个示例,每个位置点的位置数据可以指示该位置点所处的地理区域。例如,每个位置点的位置数据可以包括该位置点所处的地理区域的标识。在地理区域为城市的示例中,每个位置点的位置数据可以包括该位置点所处的城市的代码。例如,城市1的代码可以为440300,城市2的代码可以为440500等。根据本公开的另一示例,每个位置点的位置数据还可以指示该位置点的地理位置。具体地,每个位置点的位置数据还可以指示该位置点的地理位置点。例如,每个位置点的位置数据可以包括该位置点的地理位置的坐标。在该示例中,坐标可以是地理位置所处的经度和维度。此外,坐标可以表示为(x,y),其中x表示地理位置所处的经度且取值范围为0度~180度,y表示地理位置所处的纬度且取值范围为0度~90度。根据本公开的另一示例,每个位置点的位置数据还可以指示关于该位置点的其他信息。例如,每个位置点的位置数据还可以指示与该位置点对应的用户。此外,每个位置点的位置数据还可以指示生成该位置数据的时间。上面所描述的“位置数据”可以是gps位置信息。下面以位置数据为gps位置信息为例给出数据处理装置接收到的多个位置点的位置数据的一个示例。表1是数据处理装置接收到的多个位置点的位置数据的一个示例。表1位置数据的示例如表1所示,数据处理装置接收到16个位置点的gps位置信息。这16个位置点中的每个位置点的gps位置信息包括该位置点所处的城市的代码、该位置点的经度和维度、该位置点的用户id和gps位置信息的生成时间。返回图2,在步骤s202中,数据处理装置将每个位置点的位置数据存储至与每个位置点所处的地理区域对应的至少一个区域存储模块中。如上面所描述的,数据处理装置可以预先配置与每个地理区域对应的至少一个区域存储模块。在地理区域为城市的示例中,数据处理装置可以预先配置与每个城市对应的至少一个区域存储模块,以便将每个位置点的位置数据存储至与每个位置点所处的城市对应的至少一个区域存储模块中。例如,数据处理装置可以预先配置与城市1对应的两个区域存储模块,以便将处于城市1的位置点的位置数据存储在这两个区域存储模块。此外,根据本公开的一个示例,在步骤s202之前,数据处理装置可以根据每个位置点的位置数据确定该位置点所处的地理区域。例如,数据处理装置可以解析每个位置点的位置数据,以获取该位置点的位置数据中的地理区域标识,从而确定该位置点所处的地理区域。例如,在表1的示例中,数据处理装置可以解析位置点1的gps位置信息,以获取位置点1的gps位置信息中的城市代码“440300”,从而确定位置点1处于城市1。在步骤s202之后,数据处理装置可以针对各个区域存储模块存储的至少一个位置点的位置数据分别进行处理,以获取各个地理区域的用户密度。在本公开中,数据处理装置可以通过分布式聚类算法,针对各个区域存储模块存储的至少一个位置点的位置数据分别进行处理。这里的“分布式聚类算法”可以是适用于位置数据的聚类算法,其可以基于位置数据聚类成区域的密度。具体地,该算法可以随机选择一个位置点,并在一个给定的距离内寻找更多的位置点,然后通过重复这个过程来寻找新的位置点来扩展类簇,直到无法再扩大为止。下面将结合步骤s203来描述数据处理装置通过该算法针对每个区域存储模块存储的至少一个位置点的位置数据进行处理的具体过程。具体地,在步骤s203中,数据处理装置至少根据每个区域存储模块存储的至少一个位置点的地理位置,确定所述至少一个位置点中的目标第一类型点。在本公开中,可以将位置点分为三种类型,即第一类型点、第二类型点和第三类型点。具体地,第一类型点可以是中心点,第二类型点可以是边界点,以及第三类型点可以是噪声点。中心点可以是其周围用户较密集的位置点,边界点可以是其周围用户较稀疏的位置点,以及噪声点可以是其周围用户非常稀疏的位置点。可以根据预设规则判断某一位置点是中心点、边界点和噪声点中的哪种类型点。预设规则例如可以是由地理半径和位置点的地理位置确定的地理范围覆盖的位置点的数量是否超过预定数量。当由地理半径和位置点的地理位置确定的地理范围覆盖的位置点的数量大于或等于预定数量时,可以将该位置点确定为中心点;当由地理半径和位置点的地理位置确定的地理范围覆盖的位置点的数量小于预定数量且非一时,可以将该位置点确定为边界点;以及当由地理半径和位置点的地理位置确定的地理范围覆盖的位置点的数量为一时,表明由地理半径和位置点的地理位置确定的地理范围仅包括该位置点,因此,可以将该位置点确定为噪声点。此外,在本公开中,中心点可以被表示为c,边界点可以被表示为b,噪声点可以被表示为c,地理半径可以被表示为r,预定数量可以被表示为p。图3示出了根据本公开实施例的中心点、边界点和噪声点的示意图。如图3所示,在地理半径r=500米、预定数量p=5的示例中,以位置点1为中心、地理半径r为半径的圆覆盖了6个位置点,因此,可以将位置点1确定为中心点。此外,以位置点2为中心、地理半径r为半径的圆覆盖了2个位置点,因此,可以将位置点2确定为边界点。此外,以位置点3为中心、地理半径r为半径的圆仅包括自身即1个位置点,因此,可以将位置点3确定为噪声点。此外,在本公开中,上述预设规则还可以是由地理半径和位置点的地理位置确定的地理范围覆盖的位置点的数量是否超过预定数量且是否小于最大阈值。在这种情形下,当由地理半径和位置点的地理位置确定的地理范围覆盖的位置点的数量大于或等于预定数量且小于最大阈值时,可以将该位置点确定为中心点。通过这种方式,避免了由于数据处理装置处理过量的位置数据而导致的运行故障。此外,在本公开中,上述地理半径可以是预先设置的。例如,数据处理装置可以预先设置地理半径的取值。例如,数据处理装置可以预设设置地理半径的取值为500米。然而,需要认识到,上述地理半径还可以通过其他方式来确定,本公开对此不作限定。在本公开中,数据处理装置通过步骤s203可以统计每个区域存储模块存储的至少一个位置点中的目标中心点,从而获取该区域的用户密度。在步骤s203中,数据处理装置不会将每个中心点都作为目标中心点。因为,对于距离较近的两个中心点,如果将这两个中心点都作为目标中心点,对区分聚类的稠密区域没有任何益处,并且还降低了聚类速度。因此,为了克服这些问题,本公开提出尽可能减少目标中心点的数量。例如,对于距离较近的两个中心点,可以仅保留其中一个中心点,从而减少目标中心点的数量,区分聚类的稠密区域,提高聚类速度。下面将结合图4来描述数据处理装置通过步骤s203统计每个区域存储模块存储的至少一个位置点中的目标中心点的方法的示意流程图。图4是根据本公开实施例的数据处理装置统计每个区域存储模块存储的至少一个位置点中的目标中心点的方法的示意流程图。如图4所示,在步骤s401中,数据处理装置可以从所述至少一个位置点中选择第一位置点。例如,数据处理装置可以从所述至少一个位置点中随机选择第一位置点。例如,在图3的示例中,数据处理装置可以从图3所示的这些位置点中随机选择了位置点1。然后,在步骤s402中,数据处理装置可以根据由地理半径和第一位置点的地理位置确定的第一地理范围,确定第一位置点是否为第一类型点。例如,当所述至少一个位置点中被第一地理范围覆盖的位置点的数量小于预设数量时,确定第一位置点不是第一类型点(可能是第二类型点或第三类型点);以及当所述至少一个位置点中被第一地理范围覆盖的位置点的数量大于或等于预设数量,确定第一位置点是第一类型点。例如,在图3的示例中,数据处理装置可以根据以位置点1为中心、地理半径r为半径的圆,确定位置点1为第一类型点。然后,在步骤s402中确定第一位置点不是第一类型点的情况下,在步骤s403中,数据处理装置可以确定所述至少一个位置点中的剩余位置点中的目标第一类型点。例如,数据处理装置可以根据确定所述至少一个位置点中的目标第一类型点的方法来确定所述至少一个位置点中的剩余位置点中的目标第一类型点。此外,在步骤s402确定第一位置点是第一类型点的情况下,在步骤s404中,数据处理装置可以根据第一位置点和所述至少一个位置点中除了第一地理范围内的位置点之外的位置点来确定目标第一类型点。例如,在图3的示例中,数据处理装置可以根据位置点1、未被以位置点1为中心且地理半径r为半径的圆覆盖的位置点、以及在以位置点1为中心且地理半径r为半径的圆上的位置点来确定目标第一类型点。步骤s404可以包括以下四个子步骤(s404-1至s404-4)。具体地,在步骤s404-1中,数据处理装置可以从所述至少一个位置点中、不包括第一地理范围内的位置点的位置点中选择第二位置点。例如,数据处理装置可以从所述至少一个位置点中、不包括第一地理范围内的位置点的位置点中随机选择第二位置点。例如,在图3的示例中,数据处理装置可以从未被以位置点1为中心且地理半径r为半径的圆覆盖的位置点、以及在以位置点1为中心且地理半径r为半径的圆上的位置点中随机选择第二位置点。然后,在步骤s404-2中,数据处理装置可以根据由地理半径和第二位置点的地理位置确定的第二地理范围,确定第二位置点是否为第一类型点。例如,当所述至少一个位置点中被第二地理范围覆盖的位置点的数量小于预设数量时,确定第二位置点不是第一类型点(可能是第二类型点或第三类型点);以及当所述至少一个位置点中被第二地理范围覆盖的位置点的数量大于或等于预设数量,确定第二位置点是第一类型点。例如,在图3的示例中,数据处理装置可以根据以位置点2为中心、地理半径r为半径的圆,确定位置点2不是第一类型点。此外,在步骤s404-2中确定第二位置点不是第一类型点的情况下,在步骤s404-3中,数据处理装置可以重新选择一个位置点,以便确定所述至少一个位置点中的目标中心点。具体地,数据处理装置可以确定所述至少一个位置点中、不包括第一地理范围内的位置点且不包括第二位置点的位置点中的第一类型点;以及根据第一位置点和所确定的所述至少一个位置点中、不包括第一地理范围内的位置点且不包括第二位置点的位置点中的第一类型点确定目标第一类型点。例如,在图3的示例中,数据处理装置可以确定图3所示的这些位置点中、不包括以位置点1为中心且地理半径r为半径的圆内的位置点且不包括位置点2的位置点中的第一类型点。此外,在步骤s404-2中确定第二位置点是第一类型点的情况下,在步骤s404-4中,数据处理装置可以根据第一位置点和第二地理范围确定目标第一类型点。例如,当第二地理范围不覆盖第一位置点时,数据处理装置可以将第一位置点和第二位置点均确定为目标第一类型点。又例如,当第二地理范围覆盖第一位置点(即第二位置点从第一位置点直接密度可达)时,数据处理装置将第一位置点更新为不是第一类型点,即取消第一位置点作为第一类型点。然后,数据处理装置可以确定第一地理范围内的位置点是否为第一类型点。当第一地理范围内的位置点不是第一类型点时,数据处理装置可以将第二位置点确定为目标第一类型点。当第一地理范围内的位置点是第一类型点时,数据处理装置可以取消第二位置点作为第一类型点。通过这种方式,可以减少目标中心点的数量,区分聚类的稠密区域,提高聚类速度。图5是根据本公开实施例的直接密度可达的示意图。如图5所示,在确定位置点p为中心点之后,确定了位置点q为中心点。由于以位置点q为中心且地理半径r为半径的圆覆盖了位置点p,因此,可以称位置点q从位置点p直接密度可达。在这种情况下,可以取消位置点p作为中心点。在取消位置点p作为中心点之后,可以判断以位置点p为中心且地理半径r为半径的圆内的位置点是否为中心点。以位置点p为中心且地理半径r为半径的圆内的位置点可能为边界点或噪声点。下面结合图6给出数据处理装置通过图4所示的方法统计至少一个位置点中的目标中心点的示意图。图6是根据本公开实施例的数据处理装置通过图4所示的方法统计至少一个位置点中的目标中心点的示意图。在图6的示例中,至少一个位置点为10个位置点,并且预设数量为3。根据步骤s401,数据处理装置可以从10个位置点中选择位置点5。然后,根据步骤s402,数据处理装置可以根据由地理半径和位置点5的地理位置确定的第五地理范围,确定位置点5是否为第一类型点。由于以位置点5为中心、地理半径为半径的圆覆盖了位置点5、位置点6、位置点7、位置点9,因此,以位置点5为中心、地理半径为半径的圆覆盖的位置点的数量(即4)大于预设数量(即3),因此,数据处理装置可以确定位置点5为第一类型点。然后,根据步骤s404,数据处理装置可以根据位置点5和所述10个位置点中、不包括第五地理范围内的位置点的位置点(即位置点1、位置点2、位置点3、位置点4、位置点8、位置点10)来确定目标第一类型点。具体地,根据步骤s404-1,数据处理装置可以从所述10个位置点中、、不包括第五地理范围内的位置点的位置点(即位置点1、位置点2、位置点3、位置点4、位置点8、位置点10)中选择位置点4。然后,根据步骤s404-2,数据处理装置可以根据由地理半径和位置点4的地理位置确定的第四地理范围,确定位置点4是否为第一类型点。由于以位置点4为中心、地理半径为半径的圆覆盖了位置点1、位置点2、位置点3、位置点5,因此,以位置点4为中心、地理半径为半径的圆覆盖的位置点的数量(即4)大于预设数量(即3),因此,数据处理装置可以确定位置点4为第一类型点。然后,根据步骤s404-4,数据处理装置可以根据位置点5和第四地理范围确定目标第一类型点。由于第四地理范围覆盖了位置点5,因此,数据处理装置可以将取消位置点5作为第一类型点。然后,数据处理装置可以确定第五地理范围内的位置点(即位置点6、位置点7、位置点9)是否为第一类型点。当位置点6、位置点7、位置点9都不是第一类型点时,数据处理装置可以将位置点4确定为目标第一类型点。当位置点6、位置点7、位置点9中的至少一个是第一类型点时,数据处理装置可以取消位置点4作为第一类型点。此外,返回步骤s404-1,根据步骤s404-1,数据处理装置可以从所述10个位置点中、不包括第五地理范围内的位置点的位置点(即位置点1、位置点2、位置点3、位置点4、位置点8、位置点10)中选择位置点3。然后,根据步骤s404-2,数据处理装置可以根据由地理半径和位置点3的地理位置确定的第三地理范围,确定位置点3是否为第一类型点。由于以位置点3为中心、地理半径为半径的圆覆盖了位置点3、位置点4,因此,以位置点3为中心、地理半径为半径的圆覆盖的位置点的数量(即2)小于预设数量(即3),因此,数据处理装置可以确定位置点3为第二类型点(例如,边界点)。然后,根据步骤s404-3,数据处理装置可以确定位置点1、位置点2、位置点4、位置点8、位置点10中的第一类型点;以及根据位置点5和所确定的位置点1、位置点2、位置点4、位置点8、位置点10中的第一类型点确定目标第一类型点。此外,返回步骤s401,根据步骤s401,数据处理装置也可以从10个位置点中选择位置点8。然后,根据步骤s402,数据处理装置可以根据由地理半径和位置点8的地理位置确定的第八地理范围,确定位置点8是否为第一类型点。由于以位置点8为中心、地理半径为半径的圆仅覆盖了位置点8,因此,以位置点8为中心、地理半径为半径的圆覆盖的位置点的数量(即1)小于预设数量(即3),因此,数据处理装置可以确定位置点8为第三类型点(例如,噪声点)。然后,根据步骤s403,数据处理装置可以确定所述10个位置点中的剩余位置点(位置点1至7以及位置点9至10)中的目标第一类型点。下面的表2示出了数据处理装置通过图4所示的方法对多个位置点的位置数据进行处理后获得的处理结果的一个示例。gps时间经度纬度用户密度1551628800724114.0371357446697722.5684887570105151551628800724114.0314547546015722.6196390084115151551628800724114.114502256201422.5426292624711751551628800724113.8089547977026422.6271633232295651551628800724114.1294975135905222.61724341685869551551628800724114.1337191296632522.61711809769043361551628800724114.0517650853886122.56838223642079251551628800724108.93963778480234.1593675126743461551628800724113.8090177090683422.62689469961575451551628800724108.9397045916679634.15942026938396表2处理结果的示例如表2所示,数据处理装置对多个位置点的位置数据进行处理后获得了10个目标中心点。表2示出了每个目标中心点的gps时间、经度和维度、以及该位置点处的用户密度。例如,表2中的第一个目标中心点的gps时间是“1551628800724”,经度和维度为(114.03713574466977,22.56848875701051),以及该位置点处的用户密度为5。返回图2,在步骤s204中,数据处理装置将目标第一类型点的位置数据存储到数据库。例如,数据处理装置可以向数据库发送目标第一类型点的位置数据,从而将目标第一类型点的位置数据存储到数据库。此外,数据处理装置可以将目标第一类型点的位置数据按照postgresql集群所支持的数据格式(例如,post-gis)存储至数据库。此外,步骤s204中的目标第一类型点能够被显示。例如,前端的用户界面(userinterface,ui)可以调用数据库中的数据,以获得目标第一类型点的位置数据,从而在地图上显示目标第一类型点。此外,在步骤s204中,数据处理装置还可以将地理半径存储至数据库,以便显示以目标第一类型点为中心且地理半径为半径的圆的范围,从而在地图上显示各个地理区域的用户密度,例如,在地图上显示各个地理区域的交通热力图。下面结合图7给出了根据本公开实施例的特定地理区域的交通热力图的示意图。图7是根据本公开实施例的特定地理区域的交通热力图的示意图。图7示出了2019年3月4日下午3点深圳市的地铁线上的交通热力图。图7中的黑色区域是以一个或多个目标第一类型点为中心且地理半径为半径的圆形状。通过上述实施例的方法,可以实时地处理位置数据,并将处理结果实时地存储至数据库,而不是将多个位置点的位置数据存储至数据库后从数据库读取所有位置点的位置数据并进行批量处理来获得处理结果,实现了对多个位置点的位置数据进行流式计算而不是批量计算,从而能够实时地显示各个地理区域的用户密度。此外,根据本实施例的方法,可以依赖多个服务器同时处理位置数据,而不是依赖单个服务器处理位置数据,从而实现了分布式计算,提高了系统的计算性能,提高了系统的可扩展性。以下,参照图8来描述根据本公开实施例的数据处理装置。图8示出了根据本公开实施例的数据处理装置800的结构示意图。由于数据处理装置800的功能与在上文中参照图2描述的方法的细节相同,因此在这里为了简单起见,省略对相同内容的详细描述。如图8所示,数据处理装置800包括:接收单元810,被配置为接收多个位置点的位置数据,其中每个位置点的位置数据指示该位置点所处的地理区域和该位置点的地理位置;存储单元820,被配置为将每个位置点的位置数据存储至与每个位置点所处的地理区域对应的至少一个区域存储模块中;确定单元830,被配置为至少根据每个区域存储模块存储的至少一个位置点的地理位置,确定所述至少一个位置点中的目标第一类型点;以及发送单元840,被配置为将目标第一类型点的位置数据存储到数据库,其中所述目标第一类型点能够被显示。除了这四个单元以外,数据处理装置800还可以包括其他部件,然而,由于这些部件与本公开实施例的内容无关,因此在这里省略其图示和描述。如上面所描述的,数据处理装置可以预先配置与每个地理区域对应的至少一个区域存储模块。在地理区域为城市的示例中,存储单元820可以预先配置与每个城市对应的至少一个区域存储模块,以便将每个位置点的位置数据存储至与每个位置点所处的城市对应的至少一个区域存储模块中。例如,存储单元820可以预先配置与城市1对应的两个区域存储模块,以便将处于城市1的位置点的位置数据存储在这两个区域存储模块。此外,根据本公开的一个示例,在存储单元820将每个位置点的位置数据存储至与每个位置点所处的地理区域对应的至少一个区域存储模块中之前,存储单元820可以根据每个位置点的位置数据确定该位置点所处的地理区域。例如,存储单元820可以解析每个位置点的位置数据,以获取该位置点的位置数据中的地理区域标识,从而确定该位置点所处的地理区域。例如,在表1的示例中,存储单元820可以解析位置点1的gps位置信息,以获取位置点1的gps位置信息中的城市代码“440300”,从而确定位置点1处于城市1。在本公开中,通过确定单元830可以统计每个区域存储模块存储的至少一个位置点中的目标中心点,从而获取该区域的用户密度。在这个过程中,某个中心点不一定是目标中心点。具体地,当某个中心点没有被由地理半径和另一中心点的地理位置确定的地理范围覆盖时,该中心点可以作为目标中心点。当某个中心点被由地理半径和另一中心点的地理位置确定的地理范围覆盖时,该中心点不会作为目标中心点。根据本公开的一个示例,确定单元830可以从所述至少一个位置点中选择第一位置点。例如,确定单元830可以从所述至少一个位置点中随机选择第一位置点。例如,在图3的示例中,确定单元830可以从图3所示的这些位置点中随机选择了位置点1。然后,确定单元830可以根据由地理半径和第一位置点的地理位置确定的第一地理范围,确定第一位置点是否为第一类型点。例如,当所述至少一个位置点中被第一地理范围覆盖的位置点的数量小于预设数量时,确定第一位置点不是第一类型点(可能是第二类型点或第三类型点);以及当所述至少一个位置点中被第一地理范围覆盖的位置点的数量大于或等于预设数量,确定第一位置点是第一类型点。例如,在图3的示例中,确定单元830可以根据以位置点1为中心、地理半径r为半径的圆,确定位置点1为第一类型点。然后,在确定第一位置点不是第一类型点的情况下,确定单元830可以确定所述至少一个位置点中的剩余位置点中的目标第一类型点。例如,确定单元830可以根据确定所述至少一个位置点中的目标第一类型点的方法来确定所述至少一个位置点中的剩余位置点中的目标第一类型点。此外,在确定第一位置点是第一类型点的情况下,确定单元830可以根据第一位置点和所述至少一个位置点中除了第一地理范围内的位置点之外的位置点来确定目标第一类型点。例如,在图3的示例中,确定单元830可以根据位置点1、未被以位置点1为中心且地理半径r为半径的圆覆盖的位置点、以及在以位置点1为中心且地理半径r为半径的圆上的位置点来确定目标第一类型点。具体地,确定单元830可以从所述至少一个位置点中、不包括第一地理范围内的位置点的位置点中选择第二位置点。例如,数据处理装置可以从所述至少一个位置点中、不包括第一地理范围内的位置点的位置点中随机选择第二位置点。例如,在图3的示例中,确定单元830可以从未被以位置点1为中心且地理半径r为半径的圆覆盖的位置点、以及在以位置点1为中心且地理半径r为半径的圆上的位置点中随机选择第二位置点。然后,确定单元830可以根据由地理半径和第二位置点的地理位置确定的第二地理范围,确定第二位置点是否为第一类型点。例如,当所述至少一个位置点中被第二地理范围覆盖的位置点的数量小于预设数量时,确定第二位置点不是第一类型点(可能是第二类型点或第三类型点);以及当所述至少一个位置点中被第二地理范围覆盖的位置点的数量大于或等于预设数量,确定第二位置点是第一类型点。例如,在图3的示例中,确定单元830可以根据以位置点2为中心、地理半径r为半径的圆,确定位置点2不是第一类型点。此外,在确定第二位置点不是第一类型点的情况下,确定单元830可以重新选择一个位置点,以便确定所述至少一个位置点中的目标中心点。具体地,确定单元830可以确定所述至少一个位置点中、不包括第一地理范围内的位置点且不包括第二位置点的位置点中的第一类型点;以及根据第一位置点和所确定的所述至少一个位置点中、不包括第一地理范围内的位置点且不包括第二位置点的位置点中的第一类型点确定目标第一类型点。例如,在图3的示例中,确定单元830可以确定图3所示的这些位置点中、不包括以位置点1为中心且地理半径r为半径的圆内的位置点且不包括位置点2的位置点中的第一类型点。此外,在确定第二位置点是第一类型点的情况下,确定单元830可以根据第一位置点和第二地理范围确定目标第一类型点。例如,当第二地理范围不覆盖第一位置点时,确定单元830可以将第一位置点和第二位置点均确定为目标第一类型点。又例如,当第二地理范围覆盖第一位置点(即第二位置点从第一位置点直接密度可达)时,确定单元830可以将第一位置点更新为不是第一类型点,即取消第一位置点作为第一类型点。然后,确定单元830可以确定第一地理范围内的位置点是否为第一类型点。当第一地理范围内的位置点不是第一类型点时,确定单元830可以将第二位置点确定为目标第一类型点。当第一地理范围内的位置点是第一类型点时,确定单元830可以取消第二位置点作为第一类型点。通过这种方式,可以减少目标中心点的数量,区分聚类的稠密区域,提高聚类速度。此外,根据本公开的一个示例,发送单元840可以向数据库发送目标第一类型点的位置数据,从而将目标第一类型点的位置数据存储到数据库。此外,发送单元840可以将目标第一类型点的位置数据按照postgresql集群所支持的数据格式(例如,post-gis)存储至数据库。此外,上述目标第一类型点能够被显示。例如,前端的用户界面(userinterface,ui)可以调用数据库中的数据,以获得目标第一类型点的位置数据,从而在地图上显示目标第一类型点。此外,发送单元840还可以将地理半径存储至数据库,以便显示以目标第一类型点为中心且地理半径为半径的圆的范围,从而在地图上显示各个地理区域的用户密度,例如,在地图上显示各个地理区域的交通热力图。通过上述实施例的数据处理装置,可以实时地处理位置数据,并将处理结果实时地存储至数据库,而不是将多个位置点的位置数据存储至数据库后从数据库读取所有位置点的位置数据并进行批量处理来获得处理结果,实现了对多个位置点的位置数据进行流式计算而不是批量计算,从而能够实时地显示各个地理区域的用户密度。此外,根据本实施例的方法,可以依赖多个服务器同时处理位置数据,而不是依赖单个服务器处理位置数据,从而实现了分布式计算,提高了系统的计算性能,提高了系统的可扩展性。此外,根据本公开实施例的数据处理装置也可以借助于图9所示的计算设备的架构来实现。图9示出了该计算设备的架构。如图9所示,计算设备900可以包括总线910、一个或多个cpu920、只读存储器(rom)930、随机存取存储器(ram)940、连接到网络的通信端口950、输入/输出组件960、硬盘970等。计算设备900中的存储设备,例如rom930或硬盘970可以存储计算机处理和/或通信使用的各种数据或文件以及cpu所执行的程序指令。计算设备900还可以包括用户界面980。当然,图9所示的架构只是示例性的,在实现不同的设备时,根据实际需要,可以省略图9示出的计算设备中的一个或多个组件。本公开的实施例也可以被实现为计算机可读存储介质。根据本公开实施例的计算机可读存储介质上存储有计算机可读指令。当所述计算机可读指令由处理器运行时,可以执行参照以上附图描述的根据本公开实施例的方法。所述计算机可读存储介质包括但不限于例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。本领域技术人员能够理解,本公开所披露的内容可以出现多种变型和改进。例如,以上所描述的各种设备或组件可以通过硬件实现,也可以通过软件、固件、或者三者中的一些或全部的组合实现。此外,如本公开和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。此外,本公开中使用了流程图用来说明根据本公开的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。除非另有定义,这里使用的所有术语(包括技术和科学术语)具有与本发明所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。以上对本公开进行了详细说明,但对于本领域技术人员而言,显然,本公开并非限定于本说明书中说明的实施方式。本公开在不脱离由权利要求书的记载所确定的本公开的宗旨和范围的前提下,可以作为修改和变更方式来实施。因此,本说明书的记载是以示例说明为目的,对本公开而言并非具有任何限制性的意义。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1