CN102033918B - 基于时间位置信息搜索目标用户的方法及系统 - Google Patents
基于时间位置信息搜索目标用户的方法及系统 Download PDFInfo
- Publication number
- CN102033918B CN102033918B CN2010105834016A CN201010583401A CN102033918B CN 102033918 B CN102033918 B CN 102033918B CN 2010105834016 A CN2010105834016 A CN 2010105834016A CN 201010583401 A CN201010583401 A CN 201010583401A CN 102033918 B CN102033918 B CN 102033918B
- Authority
- CN
- China
- Prior art keywords
- information
- user
- time
- search
- time location
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于时间位置信息搜索目标用户的方法,包括:对表示用户时间位置的信息进行分析,获取所有用户的时间位置信息,并进行存储;接收搜索发起用户提供的待搜索的时间位置信息,将该待搜索的时间位置信息与存储的所有用户的时间位置信息进行匹配;显示匹配成功的目标用户信息。本发明同时公开了一种基于时间位置信息搜索目标用户的系统。利用本发明,搜索发起用户可以在地图上或者是其他方式映射到地图上的区域、路线或具体地点来进行选择输入,避免了需要查询包含的每一地点的手动操作,进而使得搜索发起用户只需一次性的输入就能够准确迅速地搜索到所需的目标用户信息,大大节省了搜索时间。
Description
技术领域
本发明涉及互联网搜索技术领域,特别涉及一种在互联网上基于时间位置信息搜索目标用户的方法及系统。
背景技术
在目前的网上交友服务和即时通讯服务以及其它类似服务中,当用户需要搜索某些其他用户时,通常只能通过年龄、住址以及用户名称等条件进行搜索。但是,很多情况下,用户会对过去、现在或未来某一时间段某一位置遇到的某些用户有搜索需求。
例如,用户会对过去经常活动的一个区域中的人进行搜索,比如暑假在天安门广场玩的伙伴,不记得了他们的名字,但是又想联系到他们。或者用户对在某天的一段路程上对街上的某个或多个行人记忆深刻,但当时却没有留下联系方式,现在想搜索到这个人或这些人。又例如用户可能想知道将要旅游的地方碰到的用户大概具有哪些特征等。
现有技术中,为解决上述问题,当搜索发起用户需要搜索某一时间位置的目标用户时,搜索发起用户只能手动查询每一个用户,查看每个用户记录的所有地点,查看其中是否有与自己到过的地点重合且时间段也重合的用户,或者搜索发起用户查询自己所待过区域包含的每一个地点、路程中途径的每一个地点或具体的某一个地点,手动地在每个地点中进行逐一查看是否有与自己时间段重合的用户,然后利用时间段筛选出目标用户。
现有技术中,虽然可以通过按照搜索发起用户输入的文字信息搜索到相关的目标用户,但由于搜索发起用户只能查找每个用户去过的地点或者是查看该地点所记载的所有用户,为搜索发起用户带来了诸多不便,比如:1)地点信息有时不是一个具体的地点而是某一个区域;2)地点信息有时不是一个具体的地点而是某一条线路;3)查找每个用户去过的地点或者是查找每个地点所符合要求的用户,其效率不高;4)搜索发起用户需要查询的目标用户是搜索发起用户在某一地点所看到的位于另一地点的用户,而目标用户并未实际到达过搜索发起用户所在的地点;5)搜索发起用户有时需要搜索与其擦肩而过的用户;6)搜索发起用户查询某地点所有用户时对时间也有要求,而现有技术未给出利用时间筛选用户的方法;7)没有产生地图信息(或用户信息)与搜索引擎相结合的技术效果。
可见,由于上述问题的存在,现有技术并不能满足搜索发起用户对某些目标用户针对时间位置进行搜索的需要,也无法为搜索发起用户准确迅速地返回所需的目标用户信息。
发明内容
(一)要解决的技术问题
本发明的主要目的在于提供一种在互联网中基于时间位置信息搜索目标用户的系统及方法,以针对搜索发起用户对某些时间位置进行搜索的需要,准确迅速地返回所需的目标用户信息。
(二)技术方案
为达到上述目的,本发明提供了一种基于时间位置信息搜索目标用户的方法,该方法包括:
对表示用户时间位置的信息进行分析,获取所有用户的时间位置信息,并进行存储;
接收搜索发起用户提供的待搜索的时间位置信息,将该待搜索的时间位置信息与存储的所有用户的时间位置信息进行匹配;
显示匹配成功的目标用户信息。
为达到上述目的,本发明还提供了一种基于时间位置信息搜索目标用户的系统,该系统包括时间位置分析器、时间位置索引器和时间位置搜索器,其中:
时间位置分析器,用于对表示用户时间位置的信息进行分析,获取所有用户的时间位置信息,并输出给所述时间位置索引器;
时间位置索引器,用于接收并存储所述时间位置分析器输入的所有用户的时间位置信息;
时间位置搜索器,用于接收搜索发起用户输入的待搜索的时间位置信息,并将该待搜索的时间位置信息与所述时间位置索引器中存储的所有用户的时间位置信息进行匹配,显示匹配成功的目标用户信息。
(三)有益效果
从上述技术方案可以看出,本发明具有以下有益效果:
本发明提供的这种在互联网中基于时间位置信息搜索目标用户的系统及方法,通过时间位置分析器分析并获取用户的时间位置并将其输出给时间位置索引器,此处用户的时间位置是基于地理坐标进行的。当搜索发起用户进行搜索时,搜索发起用户可以在地图上或者是其他方式映射到地图上的(如文字输入,下拉框,移动终端)的区域、路线或具体地点来进行选择输入,相对于现有技术搜索某一时间段某一位置的目标用户时,搜索技术仅仅用于搜索地点或筛选时间段,导致搜索发起用户需要手动查询某一区域内的每一地点、某一路线经过的每一地点或每一用户记录的地点等诸多的手动操作,本发明避免了需要查询包含的每一地点的手动操作,进而使得搜索发起用户只需一次性的输入就能够准确迅速地搜索到所需的目标用户信息,大大节省了搜索时间。
附图说明
图1是本发明提供的基于时间位置信息搜索目标用户的方法流程图;
图2是本发明基于时间位置信息搜索目标用户的系统结构示意图;
图3是依照本发明实施例提供的基于时间位置信息搜索目标用户的方法流程图;
图4是Dijkstra算法中采用的有向图;
图5是线段与圆求交的示意图;
图6是圆与裁剪窗口的示意图;
图7是圆弧的中点检测法示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明提供的这种基于时间位置信息搜索目标用户的方法,通过对表示用户时间位置的信息进行分析,获取所有用户的时间位置信息,然后存储所有用户的时间位置信息,当搜索发起用户确定需要对某时间段、某个地点、某个路线或某个区域的时间位置进行搜索后,根据搜索发起用户提供的查询条件,将该待搜索的时间位置信息与所述存储的所有用户的时间位置信息进行匹配,返回符合搜索发起用户要求的目标用户信息并显示。
如图1所示,图1是本发明提供的基于时间位置信息搜索目标用户的方法流程图,该方法包括以下步骤:
步骤1:对表示用户时间位置的信息进行分析,获取所有用户的时间位置信息,并进行存储;
步骤2:接收搜索发起用户提供的待搜索的时间位置信息,将该待搜索的时间位置信息与存储的所有用户的时间位置信息进行匹配;
步骤3:显示匹配成功的目标用户信息。
其中,步骤1中所述对表示用户时间位置的信息进行分析包括:对用户以点击地图方式表示的用户时间位置信息进行分析,或者对用户以点击下拉框方式表示的用户时间位置信息进行分析,或者对用户以输入的文字方式表示的用户时间位置信息进行分析,或者对用户以移动终端定位信息方式表示的用户时间位置信息进行分析。时间位置信息包括地理坐标信息和时间段信息,所述获取所有用户的时间位置信息是获取所有用户的地理坐标信息和时间段信息。该时间位置信息进一步与地图中的地理坐标数据相结合,或者与地点位置间的路径数据相结合。
用户以点击地图方式表示的用户时间位置信息包括:用户在人机界面显示的地图上以点击方式进行定位后,在地图上点击的用户待过的位置点信息或走过的路线信息或待过的某一区域信息,以及在人机界面弹出的对话框中输入的时间段信息。
用户在人机界面显示的地图上以点击方式进行定位后,进一步包括:对于位置点信息,选择一个视野范围,根据该视野范围计算出该点所在区域的顶点信息;或者对于路线信息,选择一个视野范围,根据该视野范围计算出该路线所在区域的顶点信息。其中,对于位置点信息,以用户点击的位置为圆心,视野范围为半径的圆区域,或者是以用户点击的位置为中心,视野范围为边长的矩形区域,设定一个视野范围。
在地图上点击的用户走过的路线信息是通过以下方式获取的:连续点击若干位置,该若干位置是连续记录两点的坐标,且路线为两点间的直线距离;或者,将点击的位置与存储的路径信息相结合,在地图上显示用户点击两点间的连线是路径点之间最短距离的连线,所有路径点的坐标信息由最短路径算法得出;若用户进行路径选择时两点中有至少一个未点击到路径点,则计算与该未点击到的路径点最接近的路径线,并用线段将与该路径线垂直的交点相连接,然后计算该交点路径线上与该交点距离最短的路径点,并计算该路径点之间的最短距离,路线信息即为用户点击的点与其最近的路径线之间的垂直距离、该垂直交点距离最短的路径点之间的距离、路径点之间的最短距离三者之和;记录该点以及交点还有所有路径点的坐标信息,当该点在路径线上时,则该点到该路径线的距离即为0,与其最接近的线即为该点在路径线上的线,若有两条或多条路径线穿过该点,则之后计算与该交点各路径线上的路径点之间的距离,取最短的,若还有一个以上路径点距离一样,则任取一个路径点进行相连;未点击到时也可以直接计算与该点最近的路径点,最短距离即为该点与其最近的路径点之间的距离加上路径点之间的最短距离。
当用户输入为路线信息以及时间段信息时,进一步对路线长度进行计算,将路线长度除以时间得出该用户的速度,设定一阈值,若用户输入的路线速度大于该阈值则返回输入不符合要求,小于该阈值则存储该路线信息。
在地图上点击的用户待过的某一区域信息是通过以下方式获取的:依次进行顶点的标注,形成一个闭区域,这时记录各顶点坐标信息;或者挑选一个矩形框进行区域的选择,存储各顶点的坐标,或者挑选一个圆区域进行区域的选择,先点击一点确认圆心坐标,后点击的点确定圆的半径,存储圆心坐标及半径的长度。
在地图上点击的用户待过的位置点信息或走过的路线信息或待过的某一区域信息,是在二维情况下进行点击的,当地图的维数为三维时,区域及路线的选择是将高度轴化为0来进行二维化的。
对用户以点击下拉框方式表示的用户时间位置信息进行分析包括:若用户只记录待一个地方,将下拉框一直选到最后一个下拉框并点击确认即可;进行区域选择时下拉框选择的地理位置相当于一个区域,该区域对应的顶点信息将被自动存储;在点击下拉框时,一个与用户输入实时体现的地图将被显示;进行路线选择时下拉框选择的地理位置相当于在地图上该地理位置点击,用户在选择下拉框定位后再在地图中点击下一个点,或者在点击完地图后在采用下拉框进行选择。选择了位置后进一步确定视野范围,以该位置坐标中心点为中心,边长为视野范围的矩形区域,或者是以该位置坐标中心点为圆心,半径为视野范围的圆形区域。
对用户以输入的文字方式表示的用户时间位置信息进行分析时,如果用户输入的文字在地理位置信息中找不到对应的信息,则显示地图供用户进行查询。
对用户以移动终端定位信息方式表示的用户时间位置信息进行分析包括:对于位置点信息,利用移动终端进行GPS定位到地图上的点来作为用户时间位置信息,定位后还进一步进行视野范围的设置;对于路线信息,先定位一点,然后再定位另一点,以这两点确定一条路线,并存储这两点中间点的信息;对于区域信息,先定位区域的多个端点,然后以该些端点确定一个区域,并存储该些端点的信息。对用户以移动终端定位信息方式表示的用户时间位置信息时,进一步将其与地图下拉框输入文字相互结合,先利用定位然后再在地图上点击下一点,然后再在下拉框中输入另一点的信息。
步骤2中所述接收搜索发起用户提供的待搜索的时间位置信息包括:接收搜索发起用户点击地图输入的地理坐标信息,接收搜索发起用户点击下拉框输入的下拉框信息,接收搜索发起用户文字输入的文字信息,以及接收搜索发起用户移动终端GPS定位的地理坐标信息。其中,接收搜索发起用户文字输入的文字信息包括:接收搜索发起用户提供的某一点的地理坐标,接收搜索发起用户提供的某条折线段的多个点的地理坐标,接收搜索发起用户提供的某个区域顶点的地理坐标,以及接收搜索发起用户提供的某个圆区域圆心的地理坐标及其半径。
步骤2中所述接收搜索发起用户提供的待搜索的时间位置信息后进一步包括:判断接收的搜索发起用户提供的待搜索的时间位置信息的数据格式与存储的所有用户的时间位置信息的数据格式是否相同,如果不同,则将待搜索的时间位置信息转换为与所有用户的时间位置信息数据格式相同的时间位置数据。
步骤2中所述将该待搜索的时间位置信息与存储的所有用户的时间位置信息进行匹配包括:计算该待搜索的时间位置信息与存储的所有用户的时间位置信息中的时间位置信息是否重合、包含或相交,如果是重合、包含或相交,则匹配成功;若搜索发起用户输入的搜索条件为点信息,则计算时间重合度;若输入的为线信息,则计算线重合度与时间重合度,且取其中较小的重合度为排序比例;若输入的为区域信息,则计算区域重合度与时间重合度,且取其中较小的一个作为排序比例;其中重合度就是重合的部分占搜索发起输入部分的比例以及重合的部分占被搜索的用户部分的比例,取这两比例中较小的一个作为重合度。
步骤3中所述显示匹配成功的目标用户信息包括:若搜索发起用户输入的时间位置信息为位置点信息,则首先显示与该位置点重合的用户信息,然后再显示与该位置点相交的线段的用户信息,以及与该位置点相交的区域的用户信息,若与点或线段或区域相交的用户信息有多个,则按时间的重合比例由大到小的顺序进行排序并显示;若搜索发起用户输入的时间位置信息为路线信息,则计算搜索发起用户的路线长度与数据库中路线长度重合部分占两个长度比例中最小的一个;两条路线的长度由各线段坐标点之间的距离之和得出,当计算线段相交时,计算结果为重合的则计算两条线段的长度并取最短的一条线段长度作为重合长度,然后将所有重合长度相加即得重合部分路线长度;然后计算时间长度重合比例,然后取两个比例中路线长度的重合比例与时间长度重合比例最小的一个作为最终排序的比例,然后按该比例的由大到小排序进行显示;若搜索发起用户输入的时间位置信息为区域信息,则计算区域面积重合比例;若两个区域中都为多边形相交,则以其中任意窗口为裁剪窗口计算相交的区域,然后计算该区域的面积,计算相交的区域占该搜索发起用户区域与该区域比例最小的一个,若两个区域相互包含,则比例为被包含的区域占包含它的区域的比例。
图2示出了本发明基于时间位置信息搜索目标用户的系统结构示意图,该系统包括时间位置分析器1、时间位置索引器2和时间位置搜索器3。时间位置分析器1用于对表示用户时间位置的信息进行分析,获取所有用户的时间位置信息,并输出给所述时间位置索引器2;时间位置索引器2用于接收并存储所述时间位置分析器1输入的所有用户的时间位置信息;时间位置搜索器3用于接收搜索发起用户输入的待搜索的时间位置信息,并将该待搜索的时间位置信息与所述时间位置索引器2中存储的所有用户的时间位置信息进行匹配,显示匹配成功的目标用户信息。
时间位置分析器1包括获取模块10、计算模块11和发送模块12。其中,获取模块10用于对表示用户时间位置的信息进行分析,获取所有用户的时间位置信息并输出给所述计算模块11,该表示用户时间位置的信息由各用户在登录网络时输入。计算模块11用于分析计算该时间位置信息是否符合要求,将符合要求的时间位置信息输出给所述发送模块12。发送模块12用于将该符合要求的时间位置信息发送给所述时间位置索引器2。
获取模块10获取的表示用户时间位置的信息包括用户输入的地理坐标信息和时间段信息,其中用户输入的地理坐标信息包括:用户点击地图输入的地理坐标信息;用户点击下拉框输入的下拉框信息;用户文字输入的文字信息;以及用户移动终端GPS定位的地理坐标信息。用户文字输入的文字信息包括:用户提供的某一点的地理坐标;用户提供的某条折线段的多个点的地理坐标;用户提供的某个区域顶点的地理坐标;以及用户提供的某个圆区域圆心的地理坐标及其半径。
计算模块11在分析计算该时间位置信息是否符合要求时,对输入的路线以及其时间段做运算,以计算其速度,然后设定一阈值,计算出的速度大于该阈值的则认为不符合要求。计算模块11包括判断子单元110、第一计算子单元111和第二计算子单元112。判断子单元110用于判断用户输入的时间位置信息是点的信息、线的信息或区域的信息。第一计算子单元111对于点的信息记录该点地理坐标,对于线的信息计算每一折线段端点地理坐标,对于区域的信息计算该区域顶点的地理坐标。第二计算子单元112用于将输入的线的信息与时间段信息做速度计算,并将速度符合要求的输出给发送模块12。
对于第二计算单元112,在判断用户输入信息的是否为随意输入信息时,还可以包括:第二计算单元112将用户输入的信息与用户之前输入的信息(即存储在数据库中的)进行对比,即将用户输入的信息与数据库中在时间及区域均不重合的用户之前输入的信息进行对比,对比方式为:计算用户输入区域或路线或点与数据库中提取出来的区域或路线或点的最近距离,然后将该最近距离除以两用户输入的时间信息计算出来的时间间隔,然后设定一阈值,大于该阈值的则认为是随意输入的信息,返回不符合要求;小于或等于该阈值的则认为不是随意输入的信息,存储在数据库中。
时间位置搜索器3包括接收模块30、匹配模块31和显示模块32。接收模块30用于接收搜索发起用户输入的时间位置信息,并将该时间位置信息转换为与所述时间位置索引器2中存储的数据格式相同的时间位置数据。匹配模块31用于查询所述时间位置索引器2中存储的所有用户的时间位置信息,将该待搜索的时间位置信息与所述时间位置索引器2中存储的所有用户的时间位置信息进行匹配,判断搜索发起用户输入的时间位置信息与所有用户时间位置信息中的时间位置信息是否重合、包含或相交,如果是重合、包含或相交,则匹配成功。显示模块32用于显示匹配成功的目标用户信息。
匹配模块31在将该待搜索的时间位置信息与所述时间位置索引器2中存储的所有用户的时间位置信息进行匹配时,计算该待搜索的时间位置信息与存储的所有用户的时间位置信息中的时间位置信息是否重合、包含或相交,若搜索发起用户输入的搜索条件为点信息,则计算时间重合度;若输入的为线信息,则计算线重合度与时间重合度,且取其中较小的重合度为排序比例;若输入的为区域信息,则计算区域重合度与时间重合度,且取其中较小的一个作为排序比例;其中重合度就是重合的部分占搜索发起输入部分的比例以及重合的部分占被搜索的用户部分的比例,取这两比例中较小的一个作为重合度。显示模块32取时间重合度与路线重合度或区域重合度中最小的一个作为排序比例,显示结果按排序比例由大到小依次排列。
图3为依照本发明实施例提供的基于时间位置信息搜索目标用户的方法流程图,该方法包括以下步骤:
步骤301:对表示用户时间位置的信息进行分析,获取所有用户的时间位置信息,并进行存储。
本步骤中,可以对用户以点击地图方式表示的用户时间位置信息进行分析,获取所述用户时间位置的信息,并进行存储;
或者,对用户以点击下拉框方式表示的用户时间位置信息进行分析,获取所述用户时间位置的信息,并进行存储;
或者,对用户以输入的文字方式表示的用户时间位置信息进行分析,获取所述用户时间位置的信息,并进行存储。
或者,对用户以移动终端定位信息方式表示的用户时间位置信息进行分析,获取所述用户时间位置的信息,并进行存储。
本实施例中的时间位置数据不仅与地图中的地理坐标数据结合,而且可以与地点位置间的路径数据相结合。
下面对上述四种方式的具体实现分别进行介绍:
方式一:用户可以直接在人机界面上显示的地图进行定位,用户也可以在地图上表示待过的位置点或走过的路线或待过的某一区域。若用户表示待过某位置,如用户需要记录自己在7月18号4点到7月18号5点在湖北省武汉大学信息学部一栋待过或者将要在那个时候待在那里,则用户可以将比例尺放大到合适尺度,在湖北省武汉市武汉大学信息学部找到一栋进行点击,然后界面弹出对话框用户进行输入时间段。此时,建筑物可能为一个较大的范围,所以点击该范围中的任意位置,系统均存储该建筑物设定好的对应坐标信息。
点击某具体位置时,用户还可以设定一个视野范围,如以用户点击的位置为圆心,视野范围为半径的圆区域,或者是以用户点击的位置为中心,视野范围为边长的矩形区域,存储方式为区域的存储方式,下文将对区域方式进行介绍。视野范围可以用系统默认的或者用户自行输入。
若用户需要记录一段路线,则可以连续地点击若干位置如天安门到故宫再到北京大学。点击路线时可以是连续记录两点的坐标,且路线为两点间的直线距离,或者,将点击的位置与系统中存储的路径信息相结合,地图上显示用户点击两点间的连线都是路径点之间最短距离的连线。如若用户点击A路径点与B路径点,将点击的位置与系统中存储的路径信息相结合,系统则根据数据库中存储的路径信息计算出A到B点的最短路径。然后系统记录A到B经过的所有路径点的坐标信息。所有路径点的坐标信息由最短路径算法得出,算法如下:
最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。算法具体的形式包括:
确定起点的最短路径问题-即已知起始结点,求最短路径的问题。
确定终点的最短路径问题-与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。
确定起点终点的最短路径问题-即已知起点和终点,求两结点之间的最短路径。
全局最短路径问题-求图中所有的最短路径。
用于解决最短路径问题的算法被称做“最短路径算法”,有时被简称作“路径算法”。最常用的路径算法有:
Dijkstra算法
A*算法
SPFA算法
Bellman-Ford算法
Floyd-Warshall算法
Johnson算法
所谓单源最短路径问题是指:已知图G=(V,E),我们希望找出从某给定的源结点S∈V到V中的每个结点的最短路径。
首先,我们可以发现有这样一个事实:如果P是G中从vs到vj的最短路,vi是P中的一个点,那么,从vs沿P到vi的路是从vs到vi的最短路。
Dijkstra算法
Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。
Dijstra一般的表述通常有两种方式,一种用永久和临时标号方式,一种是用OPEN,CLOSE表方式,Drew为了和下面要介绍的A*算法和D*算法表述一致,这里均采用OPEN,CLOSE表的方式。
其采用的是贪心法的算法策略
大概过程:
创建两个表,OPEN,CLOSE。
OPEN表保存所有已生成而未考察的节点,CLOSED表中记录已访问过的节点。
1.访问路网中距离起始点最近且没有被检查过的点,把这个点放入OPEN组中等待检查。
2.从OPEN表中找出距起始点最近的点,找出这个点的所有子节点,把这个点放到CLOSE表中。
3.遍历考察这个点的子节点。求出这些子节点距起始点的距离值,放子节点到OPEN表中。
4.重复第2和第3步,直到OPEN表为空,或找到目标点。
Dijkstra算法是解单源最短路径问题的贪心算法。其基本思想是,设置顶点集合点集合S并不断地做贪心选择来扩充这个集合。一个顶点属于集合S当且仅当从源到该顶点的最短路径长度已知。初始时,S中仅含有源。设u是G的其一顶点。把从源到u且中间只经过S中顶点的路称为从源到u的特殊路径,并用数组Distance记录当前每个顶点所对应的最短特殊路径长度。Dijkstra算法每次从V-S中取出具有最短特殊路长度的顶占,Distance就记录了从源到所有其它顶点之间最短路径长度。
例如图4所示的有向图,应用Dijkstra算法计算从源顶点1到其它顶点最短路径的过程列表在下表1中。
表1
上述Dijkstra算法只计算出了从源顶点到其它顶点间的最短路径长度。如果还要求相应的最短路径,可以用算法中数组prev记录的信息找出相应的最短路径。算法中数组prev[i]记录的是从源到顶点i最短路径上i的前一个顶点。初始时,对所有i!=1,置prev[i]=u。在Dijkstra算法中更新最短路径长度时,只要Distance[u]+Cost[u][j]<Distance[j]时,就置prev[i]=u。当Dijkstra算法终止时,就可以组prev找到从源到i的最短路径上每个顶点的前一个顶点,从而找到从源到i的最短路径。
例如,对于上面例子图3中的有向图,经Dijkstra算法计算后可得到数组prev具有的值为11413。如果要找出顶点1到顶点5的最短路径,可以从数组prev得到顶点5的前一顶点3,3的前一顶点4,4的前一顶点1。再反向输出得顶点1到顶点5的最短路径是1-->4-->3-->5.
若用户进行路径选择时两点中有一个或一个以上未点到路径点,则未点到路径点的的点计算与其最接近的路径线,并用线段与和该路径线垂直的交点相连,然后计算该交点路径线上与该交点距离最短的路径点,然后计算该路径点之间的最短距离,路线即为用户点击的点与其最近的路径线之间的垂直距离加上与该垂直交点距离最短的路径点之间的距离然后加上路径点之间的最短距离。系统则记录该点以及交点还有所有路径点的坐标信息,当该点在路径线上时,该点到该路径线的距离即为0,与其最接近的线即为该点在路径线上的线,若有两条或多条路径线穿过该点,则之后计算与该交点各路径线上的路径点之间的距离,取最短的,若还有一个以上路径点距离一样,则任取一个路径点进行相连。
在用户选择了飞行模式或者路线模式时,用户可以只记录该路线信息,还可以选择一个视野范围,如系统自带的三十米的视野范围,或者是用户自行输入的一个视野范围。系统则根据该视野范围计算出该区域顶点信息。
计算方式可以为,如用户第一次依次点击A、B两点时,若为飞行模式,则记录与该AB线段垂直的以线段端点A、B为中点且以两倍视野范围为长度的两条线段的四个端点即四个顶点,当用户接着点击下一个点如C时,计算与BC垂直的以C为中点且以两倍视野范围为长度的线段两端点,并记录该两顶点。用户接着点击时照此循环。若为路线模式,则按照A、B两点间所有的路径点如a,b,c,d,e,然后计算其组成的线段,区域顶点信息则根据所有路径点计算得出,线段之间的区域顶点信息计算方式与飞行模式的计算方式一样。以区域的方式存储。区域的存储方式在下文介绍。
当用户输入为路线信息以及时间段信息时,系统可以对路线长度进行计算,将路线长度除以时间得出该用户的速度,设定一阈值,若用户输入的路线速度大于该阈值则返回输入不符合要求,小于该阈值则存储该路线信息。
若用户要表示待过的某一区域,则可以依次进行顶点的标注,形成一个闭区域,这时记录各顶点坐标信息。或者可以挑选如一个矩形框进行区域的选择,。后台的存储方式也为各顶点的坐标,也可以挑选如一个圆区域进行区域的选择(可以先点击一点确认圆心坐标,后点击的点确定圆的半径)后台的存储方式为圆心坐标及半径的长度。
上述地图输入的方式是在二维情况下进行的,当地图为更高维数如三维时,除了具体位置的如某栋建筑物是可以在三维下进行,其他如区域,路线的选择都是将高度轴化为0来进行的。
方式二:对用户以点击下拉框方式表示的用户时间位置信息进行分析。
若用户只记录待一个地方,将下拉框一直选到最后一个下拉框点击确认即可。如首先挑选湖北省,然后选择武汉市,然后选择洪山区,然后选择武汉大学,然后选择街道口,然后选择群光广场。系统则存储相应的位置信息和时间信息。存储方式与地图方式一样。
或者选择了位置后还可以进行视野范围的确定,以该位置坐标中心点为中心,边长为视野范围的矩形区域。或者是以该位置坐标中心点为圆心,半径为视野范围的圆形区域。视野范围也可以由系统默认方式确定或者用户进行输入。
因为用户可以选择飞行模式或道路模式,所以系统计算方式也有两种,存储方式也分两种。一种未与路径相结合,两点间的路线为直线相连,一种与路径相结合,两点间为道路的相连,可能包含两个路径点或两个以上的路径点。选择飞行模式的存储方式与地图的飞行模式一样。选择路线模式的与地图的路线模式一样。
选择时也可以选择视野范围,计算方式和存储方式与用户利用地图输入的方式一样。
进行区域选择时下拉框选择的地理位置就相当于一个区域,如湖北省武汉市洪山区,系统自动存储该区域对应的顶点信息。
用下拉框时,系统可以显示一个与用户输入实时体现的地图,如用下拉框选择湖北省武汉市武汉大学信息学部一教学楼时,系统的地图会自动显示到一教学楼位置。在逐一选择的过程中,如选到湖北省地图即跳到湖北省,下一个选择武汉市则跳到武汉市。进行路线选择时下拉框选择的地理位置就相当于在地图上该地理位置点击,用户可以选择下拉框定位后再在地图中点击下一个点,也可以在点击完地图后在下拉框中选择。此步骤可以重复。存储方式与用户点击地图相对应的方式一致。
方式三:对用户以输入的文字方式表示的用户时间位置信息进行分析。输入文字方式与下拉框类似,只是需要考虑若用户输入的文字在地理位置信息中找不到对应的信息,此时系统可以显示找不到该位置,然后显示地图供用户自行查询。
方式四:用户输入也可以利用移动终端(包括智能手机,笔记本,POS,车载电脑等等)(或者说一切可以用来定位的来代替鼠标输入)如手机进行GPS定位到地图上的点,也就是用户用自己具体到某个地方代替了鼠标在地图上的移动。如用户表示待过某一位置,则可在移动终端的位置上进行定位,系统自动存储该坐标信息。定位后也可以进行视野范围的设置,存储为区域,与地图方式类似,也可以利用系统默认的方式。
用户表示路线时,可以是定位到一点,然后再到另一点上按定位,系统自动存储该路线中间的顶点信息,也可以选择飞行模式或道路模式,与地图方式类似,区域也一样。
在路线和区域时,若用户选择运动模式,则系统根据移动终端的实时定位,每隔一段距离如十米存储一个端点信息。此时用户则不需要一点一点的按,系统会自动记录用户所行走的路线或区域的端点信息。
GPS定位的步骤也可以与地图下拉框输入文字相互结合,如先利用定位然后再在地图上点击下一点,然后再在下拉框中输入另一点的信息。
步骤302:接收搜索发起用户提供的待搜索的时间位置信息,将该待搜索的时间位置信息与存储的所有用户的时间位置信息进行匹配。
本步骤中,可以在界面上显示一个地图;根据接收到的用户点击或者用手机定位的表示地点位置和时间段信息,将点击后的时间位置信息转换为与所述数据库中存储的数据格式相同的时间位置数据;
或者,在界面上显示多个下拉框,根据接收到的用户选择下拉框中的地点位置和时间段信息,将选择后的时间位置信息转换为与所述数据库中存储的数据格式相同的时间位置数据;
或者,接收用户自行输入的文字时间位置信息,根据接收到的时间位置信息,将所述时间位置信息转换为与所述数据库中存储数据格式相同的时间位置数据。
或者,接收用户移动终端的定位信息,根据接收到的时间位置信息,将所述时间位置信息转换为与所述数据库中存储数据格式相同的时间位置数据。
从搜索发起用户中的数据,可先用时间段确定大概范围如,搜索发起用户输入的时间为a-b,则在数据库中查找所有第一项小于等于b且第二项大于等于a的。若搜索发起用户搜索的是某一位置的信息,则查询数据库余下的数据中与该点坐标信息相同的点,并记录。同时也计算每个点与各路线各个线段的是否相交,其算法是:
设定线段AB在笛卡尔坐标系下的坐标值为(Xa,Ya)、(Xb、Yb),引入如下的参数方程表示线段:
线段AB:X=Xa+(Xb-Xa)*m
Y=Ya+(Yb-Ya)*m
参数0<=m<=1注:仅当参数0<=m<=1表示线段AB,点的数据为(Xc,Yc),求点与线段的交点,先求参数m,上述方程整理为:
Xc=Xa+(Xb-Xa)*m
Yc=Ya+(Yb-Ya)*m
当(Xc-Xa)/(Xb-Xa)不等于(Yc-Ya)/(Yb-Ya)时,点与线段不相交,当(Xc-Xa)/(Xb-Xa)=(Yc-Ya)/(Yb-Ya)时,m=(Xc-Xa)/(Xb-Xa)=(Yc-Ya)/(Yb-Ya),,当0<=m<=1时,它们才有交点,交点为(Xc,Yc),反之,则无交点。
计算点与区域的相交
判断一个点是否包含在同平面的一个多变形内,有许多算法,这里仅介绍常用的三种叉积判断法,夹角之和检验法以及交点计数检验法中的交点计数检验法:
当多边形是凹多边形,甚至还带孔时,可采用交点计数法判断点是否在多边形内。具体做法是,从判断点作一射线至无穷远:
求射线与多边形边的交点个数。若个数为奇数,则点在多边形内,否则,点在多边形外。
当射线穿过多边形顶点时,必须特殊对待。正确的方法是,若共享顶点的两边在射线的同一侧,则交点计数加2,否则加1。具体计数时,当一条边的两个端点y值都大于y0,即边处于射线上方时,计数加1,否则不加。
若是计算点与圆区域的可以进行点与圆心的距离计算,小于等于圆的半径判断在圆内,大于圆的半径判断为在圆外。
若输入的为路线信息,利用路线中最近的两点,以两点为一线段,计算与点相交时,计算点与每一线段是否相交,算法与上文点与线段相交算法一致。计算与线段是否相交时,计算每一线段与该数据库中的每条路线中的两邻近点的线段是否相交,直到计算完所有路线和该搜索发起用户路线中每一线段是否相交。线段相交算法为:
设定两线段AB、CD在笛卡尔坐标系下的坐标值为(Xa,Ya)、(Xb、Yb)和(Xc,Yc)、(Xd、Yd),引入如下的参数方程表示两线段:
线段AB:X=Xa+(Xb-Xa)*m
Y=Ya+(Yb-Ya)*m
参数0<=m<=1
线段CD:X=Xc+(Xd-Xc)*m
Y=Yc+(Yd-Yc)*m
参数0<=n<=1
注:仅当参数0<=m<=1表示线段AB,0<=n<=1
时表示线段CD。求解两线段的焦点,这里先求参数m,n,上述方程整理为:
Xa+(Xb-Xa)*m=Xc+(Xd-Xc)*n
Ya+(Yb-Ya)*m=Yc+(Yd-Yc)*n
即为(Xb-Xa)*m-(Xd-Xc)*n=Xc-Xa
(Yb-Ya)*m-(Yd-Yc)*n=Yc-Ya
设D=|Xb-Xa Xc-Xd|
|Yb-Ya Yc-Yd|
D=0时两线段AB、CD平行或重合。
此时可以将两条线段中任意一条中的一点带入到另一条的方程中看是否在该线段上,算法如上文所述,若在则两条线段重合,在本实施例中判断为相交,若不在则判断为平行,舍去。
当D=/0时:
m=1/D|Xc-Xa Xc-Xd| n=1/D|Xb-Xa Xc-Xa|
|Yc-Ya Yc-Yd| |Yb-Ya Yc-Ya|
求出m=m‘、n=n’
当0<=m<=10<=n<=1时,线段AB、CD才有交点,交点为:
(Xa+(Xb-Xa)*m’,Ya+(Yb-Ya)*m’)或(Xc+(Xd-Xc)*n’,Yc+(Yd-Yc)*n’),反之,则视线段AB,CD无交点。
判断线段与区域中的多边形的相交时,先逐一比较顶点组成的线段与该路线的各线段是否相交,算法与线段相交算法一致,若有相交则记录,若无一相交,则表明该整条路线在区域内或在区域外,判断该路线中任意一点是否在该区域中,算法与点与区域相交的算法相同,若该点在该区域中则记录该数据,若不在,则舍弃该数据。
判断线段与区域中的圆的相交时,圆与线段相交的算法也可以为:
如图5,已知线段P1、P2,端点坐标为P(x1,y1),P(x2,y2),则其方程为:
ax+by+c=0 (1)
其中a=y0-y1,b=x1-x0,c=x0y1-x1y0。圆的方程为:
(x-x0)2+(y-y0)2=r2 (2)
由点到直线的距离公式可知,圆心(x0,y0)到
若d>r,则表明线段与圆没有交点,否则,讨论交点求法。
将式(3)代入式(2)中,化简整理得
At2+Bt+C=0 (4)
其中
A=x1 2+x2 2+y1 2+y2 2-2x1x2-2y1y2
B=2(x0x1+x1x2+y0y1+y1y2-x0x2-y0y2-x1 2-y1 2)
C=x0 2+x1 2+y0 2+y1 2-2x0x1-2y0y1-r2
令Δ=B2-4AC
如果0≤ti≤1,则将ti代入式(3)所求出的点是线段与圆的交点,否则不是交点。
通过以上的讨论,给出直线段与圆的求交算法:
算法1:直线段与圆的求交。
输入:线段P1P2和圆。
Step1:初始化:求a,b,c,d,A,B,C等。
Step2:求圆心到线段的距离d。若d>r,则无交点,转Step6;否则转Step3。
Step3:求解方程(4)。如果Δ=0,求出唯一实根t,转Step4;否则,求出实根t1,t2,转Step5。
Step4:若t∈[0,1],则代入式(3)求出交点并保存到交点表中,转Step6;否则,直接转Step6。
Step5:如果t1>t2,则交换它们的值,使t1<t2,若ti∈[0,1],则代入式(3)求出交点并保存到交点表中。
Step6:结束。
若搜索发起用户输入的为区域信息,与点与线段相交的都与上文中的算法一致,判断区域中的多边形区域与多边形区域是否相交时,判断输入的区域的边界顶点组成的线段与数据库中顶点所组成的线段是否相交。若相交则记录,不相交的话,两个多边形为相离或者包含与被包含的关系,判断搜索发起用户任意一点是否在数据库中顶点包围的区域中和判断数据库中边界的任意一点是否在搜索发起用户的区域中,若在则记录,若不在则舍弃。
判断多边形区域与圆区域是否相交时,先判断区域边界顶点组成的线段与圆形是否相交,相交则记录,不相交则判断圆上任意一点是否在多边形中和判断多边形中任意一点是否在圆形中,其中有一个在另外一个区域中则记录,否则舍弃。
判断圆区域与圆区域是否相交时,判断两圆心的距离是否大于两半径之和,若大于则舍弃,若小于等于则记录。
步骤303:显示匹配成功的目标用户信息:
若搜索发起用户输入的为具体位置,简称为点的信息,则首先显示与该点位置重合的用户信息,然后再显示与之相交的线段的用户和区域与该点相交的用户。若与点或线段或面的相交都有多个用户,则按时间的重合比例由大到小来排序。
时间的重合比例为:时间相交的计算重合时间段占搜索发起用户的与数据库中时间段的比例中最小的一个。若是包含的话,即计算被包含的时间段长度占包含它的时间长度的比例。然后按所有比例由大到小进行排列显示。此举可以避免有些用户的恶意书写信息。
若搜索发起用户输入的为路线信息,简称为线的信息,显示方式可以为,计算搜索发起用户的路线长度与数据库中路线长度重合部分占两个长度比例中最小的一个。路线重合比例为:比例为计算重合部分路线长度占两条路线长度中的比例中较小的比例。
两条路线的长度由各线段坐标点之间的距离之和得出,当计算线段相交时,计算结果为重合的则计算两条线段的长度并取最短的一条线段长度作为重合长度,然后将所有重合长度相加即得重合部分路线长度。
然后计算时间长度重合比例,然后取两个比例中路线长度的重合比例与时间长度重合比例最小的一个作为最终排序的比例,然后按该比例的由大到小排序进行显示。其余与点与区域的则按时间段的重合比例来排序。
若搜索发起用户发起的为区域信息,计算区域面积重合比例:若两个区域中都为多边形相交,则以其中任意窗口为裁剪窗口把相交的区域进行计算出来。裁剪算法可以用Weiler-Atherton任意多边形裁剪算法,然后计算该区域的面积,计算面积的方法根据多边形顶点信息分割成为若干个三角形的方法即可,然后计算相交的区域占该搜索发起用户区域与该区域比例最小的一个,若两个区域相互包含,则比例为被包含的区域占包含它的区域的比例。Weiler-Atherton任意多边形裁剪算法为现有技术,这里就不再详细说明。
当计算区域中的多边形与圆区域相交时,我们来研究圆的裁剪问题。给定任意多边形裁剪窗口,圆的半径为r,圆心在(x0,y0),如下图6。处理思想是,按逆时针方向依次求裁剪窗口的每条边与被裁剪圆的交点。求Pi Pi+1(i=1,2,…,m,令Pm+1≡P1)与圆的交点可用上文所述线段与圆的相交算法求出。
首先,如果实际交点数number=0,则说明被裁剪圆要么落在多边形窗口内,要么落在多边形窗口外。
1)若被裁剪圆圆心在多边形窗口内(可用交点计数检验法),则绘制整个圆。
2)若被裁剪圆圆心在多边形窗口外,整个圆被裁剪。
以下的讨论均假设number>0。
假设窗口的所有边与圆的交点参数序列为t1,t2,…,tk(k最多取到2m,实际值可在编程时得到),其中t1,t2,…,tk的顺序可由下面的方法确定:
①若ti,tj是属于同一条边PiPi+1与圆的交点参数,则较小的一个在较大的前面(在直线段与圆的求交算法中已经这样做了),即ti<tj。
②若ti,tj是两条不同边与圆的交点,则按逆时针方向进行排序,若边在前面的,那么t值就在前面。
设参数ti对应的交点为Qi,如果参数序列已经按上述方法正确排序,那么交点Q1,Q2,…,Qk就是正确的顺序。
下面讨论判断两相邻交点之间的圆弧是否被裁剪的方法。
设Q1,Q2,…,Qk 是多边形窗口与被裁剪圆的所有交点,并已按上述方法正确排序。对两相邻的交点Qi,Qi+1,(0≤i≤k,令Qk+1≡Q1)之间的圆弧是否画出,可采用中点检测法。请注意,圆弧是有方向的,圆弧QiQi+1表示以Qi为起点,以Qi+1为终点按逆时针方向的圆弧;圆弧Qi+1Qi表示以Qi+1为起点,以Qi为终点按逆时针方向的圆弧。
如图7,将圆的方程写成参数形式:
x=x0+rcosa
y=y0+rsina 0<a<2π (5)
将Qi点坐标代入上述参数方程可求出αi,将Qi+1点坐标代入,求出αi+1。为了正确求出圆弧Qi Qi+1的中点,分以下三种情况进行讨论。
1)若αi<αi+1,则α=1/2(αi+αi+1)。
2)若αi≥αi+1,且αi+αi+1<π,则α=1/2(αi+αi+1)+π。
3)若αi≥αi+1,且αi+αi+1>π,则α=1/2(αi+αi+1)-π。
将α代入圆的参数方程(4)求得点M(xy),点M(x,y)与裁剪窗口的位置关系判定可采用“交点计数检验法”。
若M在窗口外,则圆弧QiQi+1被裁剪。为保证裁剪后的图形仍然封闭,应该绘制出以Qi为起点,以Qi+1为终点的线段。
若M在窗口内,圆弧QiQi+1被保留。
通过以上的讨论,给出圆关于一个多边形窗口的裁剪算法。
算法2:圆关于多边形窗口的裁剪。
输入:多边形窗口P1P2…Pm,被裁剪圆O(x0,y0,r)。
Step1:按照逆时针方向对多边形窗口的每条边PiPi+1(i=1,2,…,m,令Pm+1≡P1)依次调用直线段与圆的求交算法求出交点(如果有的话)。并将交点存入数组intersec-point。如果实际交点数number=0,转Step2;否则,转Step3。
Step2:若被裁剪圆圆心在多边形窗口内,则绘制整个圆;否则,整个圆被裁剪。转Step5。
Step3:依次考察两相邻的交点Qi≡intersec-point[i]和Qi+1≡intersec-point[i+1](0≤i<number,intersec-point[number]=intersec-point[0])所组成有向圆弧QiQi+1,求出该段圆弧的中点M。
Step4:采用交点计数检验法,若M在窗口外,则圆弧被裁剪,仅绘制出以intersec-point[i]为起点,以intersec-point[i+1]为终点的线段;若M在窗口内,则画出该段圆弧。
Step5:结束。
对本算法进行了实现,结果表明,不论从效率还是稳定性方面都取得了比较理想的效果。然后计算裁剪的面积,裁剪的面积可以简化为将圆弧化为线段来计算任意多边形的面积。简化了计算,提高了速度。然后计算该面积与多边形区域的面积比和该面积与圆区域的面积比,并取最小的一个作为区域面积重合比例。
若计算区域中的圆区域与圆区域,若是包含与被包含的关系,则取被包含的圆区域面积与包含该圆的圆面积之比为区域面积比例,若是相交,则计算相交的两点,计算每个圆心与相交两点组成的扇形面积与三角形面积之差,然后将该差相加即为相交的面积。区域面积重合比例即为相交的面积与各个圆的面积比之间的较小的那一个。
用以上各方法计算出区域面积比例后,显示时将该比例与时间段重合比例最小的一个作为排序比例由大到小进行排序显示,其余的与点与线的则把时间重合比例作为排序比例。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种基于时间位置信息搜索目标用户的方法,其特征在于,该方法包括:
对表示用户时间位置的信息进行分析,获取所有用户的时间位置信息,并进行存储;
接收搜索发起用户提供的待搜索的时间位置信息,将该待搜索的时间位置信息与存储的所有用户的时间位置信息进行匹配;以及
显示匹配成功的目标用户信息;
其中,所述接收搜索发起用户提供的待搜索的时间位置信息后进一步包括:判断接收的搜索发起用户提供的待搜索的时间位置信息的数据格式与存储的所有用户的时间位置信息的数据格式是否相同,如果不同,则将待搜索的时间位置信息转换为与所有用户的时间位置信息数据格式相同的时间位置数据;
其中,所述将该待搜索的时间位置信息与存储的所有用户的时间位置信息进行匹配包括:
计算该待搜索的时间位置信息与存储的所有用户的时间位置信息中的时间位置信息是否重合、包含或相交,如果是重合、包含或相交,则匹配成功;
若搜索发起用户输入的搜索条件为点信息,则计算时间重合度;若输入的为线信息,则计算线重合度与时间重合度,且取其中较小的重合度为排序比例;若输入的为区域信息,则计算区域重合度与时间重合度,且取其中较小的一个作为排序比例;其中计算重合的部分占所述搜索发起用户提供的待搜索的时间位置信息的比例以及重合的部分占所述存储的所有用户的时间位置信息的比例,取这两比例中较小的一个作为重合度;
其中,所述显示匹配成功的目标用户信息包括:
若搜索发起用户输入的时间位置信息为位置点信息,则首先显示与该位置点重合的用户信息,然后再显示与该位置点相交的线段的用户信息,以及与该位置点相交的区域的用户信息,若与点或线段或区域相交的用户信息有多个,则按时间的重合比例由大到小的顺序进行排序并显示;
若搜索发起用户输入的时间位置信息为路线信息,则计算搜索发起用户的路线长度与数据库中路线长度重合部分占两个长度比例中最小的一个;两条路线的长度由各线段坐标点之间的距离之和得出,当计算线段相交时,计算结果为重合的则计算两条线段的长度并取最短的一条线段长度作为重合长度,然后将所有重合长度相加即得重合部分路线长度;然后计算时间长度重合比例,然后取两个比例中路线长度的重合比例与时间长度重合比例最小的一个作为最终排序的比例,然后按该比例的由大到小排序进行显示;
若搜索发起用户输入的时间位置信息为区域信息,则计算区域面积重合比例;若两个区域中都为多边形相交,则以其中任意窗口为裁剪窗口计算相交的区域,然后计算相交区域的面积,并计算相交的区域占搜索发起用户区域与存储的所有用户区域比例中最小的一个,若两个区域相互包含,则比例为被包含的区域占包含它的区域的比例。
2.根据权利要求1所述的基于时间位置信息搜索目标用户的方法,其特征在于,所述对表示用户时间位置的信息进行分析包括:
对用户以点击地图方式表示的用户时间位置信息进行分析;或者
对用户以点击下拉框方式表示的用户时间位置信息进行分析;或者
对用户以输入的文字方式表示的用户时间位置信息进行分析;或者
对用户以移动终端定位信息方式表示的用户时间位置信息进行分析。
3.根据权利要求2所述的基于时间位置信息搜索目标用户的方法,其特征在于,所述用户以点击地图方式表示的用户时间位置信息包括:
用户在人机界面显示的地图上以点击方式进行定位后,在地图上点击的用户待过的位置点信息或走过的路线信息或待过的某一区域信息,以及在人机界面弹出的对话框中输入的时间段信息。
4.根据权利要求3所述的基于时间位置信息搜索目标用户的方法,其特征在于,所述用户在人机界面显示的地图上以点击方式进行定位后,进一步包括:
对于位置点信息,选择一个视野范围,根据该视野范围计算出该点所在区域的顶点信息;或者
对于路线信息,选择一个视野范围,根据该视野范围计算出该路线所在区域的顶点信息。
5.根据权利要求4所述的基于时间位置信息搜索目标用户的方法,其特征在于,所述对于位置点信息,以用户点击的位置为圆心,视野范围为半径的圆区域,或者是以用户点击的位置为中心,视野范围为边长的矩形区域,设定一个视野范围。
6.根据权利要求3所述的基于时间位置信息搜索目标用户的方法,其特征在于,所述在地图上点击的用户待过的某一区域信息是通过以下方式获取的:
依次进行顶点的标注,形成一个闭区域,这时记录各顶点坐标信息;或者挑选一个矩形框进行区域的选择,存储各顶点的坐标,或者挑选一个圆区域进行区域的选择,先点击一点确认圆心坐标,后点击的点确定圆的半径,存储圆心坐标及半径的长度。
7.根据权利要求3所述的基于时间位置信息搜索目标用户的方法,其特征在于,所述在地图上点击的用户待过的位置点信息或走过的路线信息或待过的某一区域信息,是在二维情况下进行点击的,当地图的维数为三维时,区域及路线的选择是将高度轴化为0来进行二维化的。
8.根据权利要求2所述的基于时间位置信息搜索目标用户的方法,其特征在于,所述对用户以点击下拉框方式表示的用户时间位置信息进行分析包括:
若用户只记录待一个地方,将下拉框一直选到最后一个下拉框并点击确认即可;进行区域选择时下拉框选择的地理位置相当于一个区域,该区域对应的顶点信息将被自动存储;在点击下拉框时,一个与用户输入实时体现的地图将被显示;进行路线选择时下拉框选择的地理位置相当于在地图上该地理位置点击,用户在选择下拉框定位后再在地图中点击下一个点,或者在点击完地图后再采用下拉框进行选择。
9.根据权利要求8所述的基于时间位置信息搜索目标用户的方法,其特征在于,选择了位置后进一步确定视野范围,以该位置坐标中心点为中心,边长为视野范围的矩形区域,或者是以该位置坐标中心点为圆心,半径为视野范围的圆形区域。
10.根据权利要求2所述的基于时间位置信息搜索目标用户的方法,其特征在于,所述对用户以输入的文字方式表示的用户时间位置信息进行分析时,如果用户输入的文字在地理位置信息中找不到对应的信息,则显示地图供用户进行查询。
11.根据权利要求2所述的基于时间位置信息搜索目标用户的方法,其特征在于,所述对用户以移动终端定位信息方式表示的用户时间位置信息进行分析包括:
对于位置点信息,利用移动终端进行GPS定位到地图上的点来作为用户时间位置信息,定位后还进一步进行视野范围的设置;
对于路线信息,先定位一点,然后再定位另一点,以这两点确定一条路线,并存储这两点中间点的信息;
对于区域信息,先定位区域的多个端点,然后以该些端点确定一个区域,并存储该些端点的信息。
12.根据权利要求11所述的基于时间位置信息搜索目标用户的方法,其特征在于,所述用户以移动终端定位信息方式表示用户时间位置信息时,移动终端定位信息是通过以下方式获取的:
移动终端采用运动模式的输入,用户无需操作,基于时间位置信息搜索目标用户的系统自动每隔一段距离根据阈值采集一个坐标点,作为移动终端定位信息。
13.根据权利要求1所述的基于时间位置信息搜索目标用户的方法,其特征在于,所述时间位置信息包括地理坐标信息和时间段信息,所述获取所有用户的时间位置信息是获取所有用户的地理坐标信息和时间段信息。
14.根据权利要求1所述的基于时间位置信息搜索目标用户的方法,其特征在于,所述时间位置信息进一步与地图中的地理坐标数据相结合,或者与地点位置间的路径数据相结合。
15.根据权利要求1所述的基于时间位置信息搜索目标用户的方法,其特征在于,所述接收搜索发起用户提供的待搜索的时间位置信息包括:
接收搜索发起用户点击地图输入的地理坐标信息;
接收搜索发起用户点击下拉框输入的下拉框信息;
接收搜索发起用户文字输入的文字信息;以及
接收搜索发起用户移动终端GPS定位的地理坐标信息。
16.根据权利要求15所述的基于时间位置信息搜索目标用户的方法,其特征在于,所述接收搜索发起用户文字输入的文字信息包括:
接收搜索发起用户提供的某一点的地理坐标;
接收搜索发起用户提供的某条折线段的多个点的地理坐标;
接收搜索发起用户提供的某个区域顶点的地理坐标;以及
接收搜索发起用户提供的某个圆区域圆心的地理坐标及其半径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105834016A CN102033918B (zh) | 2010-12-07 | 2010-12-07 | 基于时间位置信息搜索目标用户的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105834016A CN102033918B (zh) | 2010-12-07 | 2010-12-07 | 基于时间位置信息搜索目标用户的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102033918A CN102033918A (zh) | 2011-04-27 |
CN102033918B true CN102033918B (zh) | 2012-11-21 |
Family
ID=43886811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105834016A Expired - Fee Related CN102033918B (zh) | 2010-12-07 | 2010-12-07 | 基于时间位置信息搜索目标用户的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102033918B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103310281A (zh) * | 2012-03-16 | 2013-09-18 | 日电(中国)有限公司 | 旅游路线提取系统和方法 |
US9320008B2 (en) | 2012-04-05 | 2016-04-19 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for determining geographic position of mobile terminals |
CN103366002B (zh) * | 2013-07-17 | 2017-08-11 | 北京奇虎科技有限公司 | 个性化垂直搜索方法及装置 |
CN104759098A (zh) * | 2015-04-13 | 2015-07-08 | 四川天上友嘉网络科技有限公司 | 游戏寻路方法 |
CN104866624A (zh) * | 2015-06-12 | 2015-08-26 | 联想(北京)有限公司 | 一种推送方法和电子设备 |
CN105825849A (zh) * | 2016-04-06 | 2016-08-03 | 普强信息技术(北京)有限公司 | 一种基于识别结果时间边界的时间位置关键词命中分析方法 |
US20170347232A1 (en) * | 2016-05-25 | 2017-11-30 | Google Inc. | Determining Semantic Travel Modes |
CN106202363B (zh) * | 2016-07-06 | 2020-05-15 | 北京中投视讯文化传媒股份有限公司 | 基于电子地图的交友方法及装置 |
JP6835513B2 (ja) * | 2016-09-23 | 2021-02-24 | 東芝テック株式会社 | 情報処理装置、システム、及びプログラム |
CN106850110B (zh) * | 2017-03-13 | 2020-09-22 | 北京邮电大学 | 一种毫米波信道模型建模方法和装置 |
CN109033922A (zh) * | 2017-06-08 | 2018-12-18 | 北京君正集成电路股份有限公司 | 一种视频中设置目标标识的方法及装置 |
CN107908445B (zh) * | 2017-11-17 | 2021-03-12 | 广东小天才科技有限公司 | 一种学习信息的获取方法及电子设备 |
CN111324677A (zh) * | 2018-12-13 | 2020-06-23 | 中国移动通信集团山西有限公司 | 用户位置数据的获取方法、装置、设备及介质 |
CN110597845A (zh) * | 2019-09-05 | 2019-12-20 | 深圳前海微众银行股份有限公司 | 一种分布式存储及检索地理数据的方法、装置及系统 |
CN111680227B (zh) * | 2020-06-08 | 2023-04-21 | 广东赛百威信息科技有限公司 | 一种在地图上搜索n公里范围内目标点的方法 |
CN112804647A (zh) * | 2021-01-05 | 2021-05-14 | 北京红山信息科技研究院有限公司 | 基于通信的目标用户追踪方法、系统、服务器和存储介质 |
CN112711710A (zh) * | 2021-01-05 | 2021-04-27 | 北京红山信息科技研究院有限公司 | 多号码终端的追踪方法、系统、服务器和存储介质 |
CN114047897B (zh) * | 2021-11-18 | 2023-11-24 | 北京大数医达科技有限公司 | 检测信息显示方法、装置、电子设备和计算机可读介质 |
CN117744908B (zh) * | 2024-02-19 | 2024-04-19 | 深圳市深河环保水务有限公司 | 一种基于机器视觉的城市排水设施巡检方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818909A (zh) * | 2006-03-21 | 2006-08-16 | 唐晨辉 | 一种互联网用户相互搜索方法及其搜索引擎 |
CN101578602A (zh) * | 2006-12-07 | 2009-11-11 | 索尼株式会社 | 图像显示系统、显示设备和显示方法 |
CN101582062A (zh) * | 2008-05-12 | 2009-11-18 | 深圳市莱科电子技术有限公司 | 一种基于位置信息的相片管理系统 |
CN101867730A (zh) * | 2010-06-09 | 2010-10-20 | 马明 | 一种基于用户轨迹的多媒体合成方法 |
-
2010
- 2010-12-07 CN CN2010105834016A patent/CN102033918B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818909A (zh) * | 2006-03-21 | 2006-08-16 | 唐晨辉 | 一种互联网用户相互搜索方法及其搜索引擎 |
CN101578602A (zh) * | 2006-12-07 | 2009-11-11 | 索尼株式会社 | 图像显示系统、显示设备和显示方法 |
CN101582062A (zh) * | 2008-05-12 | 2009-11-18 | 深圳市莱科电子技术有限公司 | 一种基于位置信息的相片管理系统 |
CN101867730A (zh) * | 2010-06-09 | 2010-10-20 | 马明 | 一种基于用户轨迹的多媒体合成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102033918A (zh) | 2011-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102033918B (zh) | 基于时间位置信息搜索目标用户的方法及系统 | |
EP1955242B1 (en) | Schematic destination maps | |
Chang et al. | Discovering personalized routes from trajectories | |
CN101739617A (zh) | 基于pda的旅游智能行程导航系统 | |
CN103235831B (zh) | 基于路网的移动对象位置索引结构及索引方法 | |
Krisp et al. | Car navigation–computing routes that avoid complicated crossings | |
JP2018508791A (ja) | 装置の位置特定のための特徴ジオメトリーの選択 | |
Wang et al. | A context-based geoprocessing framework for optimizing meetup location of multiple moving objects along road networks | |
CN104598506A (zh) | 地理位置点的地址生成、查询方法和装置 | |
CN103884345A (zh) | 兴趣点信息采集方法、显示方法、装置及系统 | |
CN106708837B (zh) | 兴趣点搜索方法、装置 | |
CN101469992A (zh) | 车辆导航的处理方法、装置及车辆导航系统 | |
Mondal et al. | An overview applications of graph theory in real field | |
CN105740964A (zh) | 一种城市路网数据组织与最短路径快速计算方法 | |
CN105628044A (zh) | 基于位置实时更新与路段属性的车载导航装置与导航方法 | |
CN112905903A (zh) | 一种租房推荐方法、装置、电子设备及存储介质 | |
CN112800161B (zh) | 路网匹配方法和装置、存储介质及电子设备 | |
CN100428236C (zh) | 网络信息分类和搜索方法 | |
Ma et al. | Group homophily based facility location selection in geo-social networks | |
CN110555174B (zh) | 一种基于r树的轨迹路径推荐方法 | |
Huang et al. | Collective intelligence-based route recommendation for assisting pedestrian wayfinding in the era of Web 2.0 | |
CN108121725A (zh) | 一种搜索方法及装置 | |
JP6346537B2 (ja) | 旅行プラン出力システム | |
Zhang et al. | A road-network matching approach guided by ‘structure’ | |
CN114115283A (zh) | 基于改进的对向并行算法的机器人路径规划方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121121 Termination date: 20141207 |
|
EXPY | Termination of patent right or utility model |