专利名称:基于地图限定区域的对象查找方法
技术领域:
本发明涉及一种查找方法,尤其涉及一种基于地图限定区域的对象查找方法。
背景技术:
在线网络地图使人们能够快速简单的获取位置信息,同时基于地图的查找系统也不再只是用于查找地理位置,还可运用地理限定区域作为查找条件,对该地理限定区域范围内的对象进行查找。通常,用户在运用地理限定区域作为查找条件时,只能指定规则的区域(如圆形、矩形)作为地理范围的限制条件,不能准确定位需要的查找区域,使得查找效率低、精确性·差。
发明内容
本发明提供一种基于地图限定区域的对象查找方法,以准确定位需要的查找区域,提高查找效率和精确性。为实现本发明的目的,本发明提供了一种基于地图限定区域的对象查找方法,包括确定地图上的根据鼠标移动轨迹所选定的至少一个限定区域;确定该限定区域对应的地理范围;从预置的数据库中查找与所述地理范围、查询关键字均匹配的对象数据;根据该限定区域的面积以及地图的缩放级别在地图上显示查找到的对象数据。本发明的有益效果在于,通过记录鼠标在地图上移动所画出的限定区域,准确定位需要的查找区域,提高查找效率和精确性。
图I为本发明的基于地图限定区域的对象查找方法的实施例的流程图;图2为本发明的基于地图限定区域的对象查找方法的又一实施例的流程图;图3为本发明的基于地图限定区域的对象查找方法的又一实施例的流程图;图4为本发明的基于地X限定区域的对象查找方法的又一实施例的流程图。
具体实施例方式下面结合附图与实施例对本发明做进一步的描述。图I为本发明的基于地图限定区域的对象查找方法的实施例的流程图,本实施例具体可适用于网络在线地图中基于地图不规则限定区域的对象查找,以软件和/或硬件的形式来实现,本实施例的基于地图限定区域的对象查找方法的具体步骤如下SlO :确定地图上的根据鼠标移动轨迹所选定的至少一个限定区域。利用网络在线地图以一定区域为条件,进行查找时,可通过鼠标在地图上画出限定区域,在鼠标移动过程中,记录鼠标所经过的轨迹以确定出限定区域。S20 :确定所述限定区域对应的地理范围。通过鼠标画线确定出的限定区域以地图的折线覆盖物的形式添加并显示在地图上。在记录鼠标轨迹的过程中,可由地图API (Application Programming Interface,应用程序编程接口)可以将屏幕上点的像素坐标转换成经纬度坐标,从而获得该限定区域对应的地理范围。具体的,地图API要求点的像素坐标以地图所在区域的左上角为坐标原点。鼠标事件记录的像素点坐标所用的坐标原点为显示屏幕的左上角,因此需要先对像素点坐标进行坐标变换。通过鼠标画线所确定的限定区域可以是规则形状的,也可以是不规则形状的。S30 :从预置的数据库中查找与地理范围、查询关键字均匹配的对象数据。根据该地理范围数据,查找在其限定的地理范围内关键字所指代的内容。例如, 查找地图上限定区域范围内的宾馆。作为一种可实施方式,本实施例中查找数据库采用Oracle (甲骨文)数据库,地理范围条件的查询运用Oracle数据库的空间查询与分析功能,并且地理范围条件的查询与关键字条件的查询同时进行。S40:根据所述限定区域的面积以及地图的缩放级别在地图上显示查找到的对象数据。对象数据将以地图标注的形式显示在地图上,本实施例中,在显示对象数据时,根据限定区域的面积以及地图的缩放级别得出当前地图上显示结果的条数,再显示相应条数的结果。优选地,作为一种可实施方式,步骤SlO确定地图上的根据鼠标移动轨迹所选定的至少一个限定区域之后,还包括步骤A :在地图上显示所述限定区域。本实施例中,通过鼠标画线确定出的限定区域以地图的折线覆盖物的形式添加并显示在地图上。本实施例通过记录鼠标在地图上移动所画出的限定区域,准确定位需要的查找区域,再以该区域为检索条件,查找出该限定区域内用户所要查询的相关数据,提高了基于地图的查找的查找效率和精确性。图2为本发明的基于地图限定区域的对象查找方法的又一实施例的流程图,如图2所示,在上述实施例的基础上,SlO确定地图上的根据鼠标移动轨迹所画出的至少一个有效的限定区域,并在地图上显示所述限定区域具体包括以下步骤SlOl :依次记录地图上鼠标光标移动轨迹经过的多个位置点。本实施例可用于网络在线地图中,用户通过引动鼠标,利用鼠标光标在地图上画线,当鼠标移动时,光标在地图上所经过轨迹可通过顺序记录鼠标光标移动时经过的各位置点的像素坐标来确定,以根据各位置点选定限定的区域作为其所需要查找范围。S102:确定所述多个位置点中所有记录次序相邻的两个位置点之间的线段,若存在两条无共同位置点的线段有交点,或者不存在两条无共同位置点的线段有交点、但存在一个线段外的位置点到该线段的距离在预设的误差范围内,则获取所述至少一个限定区域。将获取的鼠标光标移动轨迹上的位置点,按照获取的顺序依次连接获得所有记录次序相邻的两个位置点之间的线段,判断任意两条没有公共位置点的连接点是否有交点,若是则说明由这些线段所形成的限定区域至少存在一块有效的限定区域,即存在至少一块封闭区域;若否则说明由这些线段所形成的限定区域不包含封闭区域。作为一种可实施方式,假设顺序记录的位置点依次为ΡρΡ2、…、Pn,即共记录η个点,P1为起始点,Pn为最后记录的点,则依次连接上述点可得到线段P1Py P2P3> P3P4>……、Pn-1 Pn °本实施例中,可从线段P1P2开始,依次判断线段P1P2与线段Ρ3Ρ4、……、PlrfPn+ρη-Λ是否有交点,线段P2P3与线段P5P6>……Hmpn是否有交点,直到找到线段Pp1Pi与线段Pp1Pj (I彡i彡η,1彡j彡η)有交点,则说明由此类线段所形成的限定区域至少存在一块有效的封闭限定区域,否则说明由此类线段所形成的限定区域不包含封闭区域。作为一种可实施方式,上述方法中两条线段是否有交点,采用判断两线段是否相交的常用方法进行判断。例如,可先进行快速排斥试验,即判断以线段Pp1Pi为对角线的矩 形为I与以线段PyA为对角线的矩形为J是否相交,如果I和J不相交,则线段PgPi与线段Pj_lPj不会相交,再通过跨立实验即可确定两线段是否有交点。或者,不存在两条无共同位置点的线段有交点时,可判断线段外的位置点到该线段的距离是否在预设的误差范围内,若是则说明所获取的限定区域虽然不是封闭的,但存在至少两各位置点之间的距离接近,可认为是由于鼠标误差或者用户原因或者其他原因而没能将所画区域画为封闭区域,因此确定该限定区域为有效的限定区域;若否,则说明该限定区域无效。假设顺序记录的鼠标移动轨迹上的点依次为ΡρΡ2、…、Pn,即共记录η个点,P1为起始点,Pn为最后记录的点,则依次连接上述点可得到线段P1Py P2P3>P3P4>……、Ρη-Λ。获取每一个位置点到不以该位置点为端点的线段的距离,例如,P1到线段Ρ2Ρ3、P3P4、……、PlriPn的距离,P2到线段P3P4、……、PlriPn的距离。本实施例中,可从位置点Pn开始,依次判断Pn到线段P1PyP2PyP3Pp……'PlrfPlri的距离,位置点Plri到线段P1PyP2PpP3Pp……H2的距离,直到找到位置点Pi到线段Pj-iPj (I彡i彡η, I彡j彡n, i关j-1, i关j)的距离小于预设距离阈值T,则判断| i_j是否大于预设阈值M,如果是,则该限定区域满足预设的误差要求;如果否,则该限定区域不满足预设的误差要求。本实施例中通过记录鼠标轨迹确定地图上的限定区域,并判断所画轨迹是否为封闭区域,非封闭区域再考察其误差,以确定至少一个有效的限定区域。通过本实施例的方法,用户在确定其用于查找的地理范围时,可以任意确定其想要的任意形状的限定区域,以提高查找的精确性。图3为本发明的基于地图限定区域的对象查找方法的又一实施例的流程图,如图3所示,在上述实施例的基础上,步骤SlOl依次记录地图上鼠标光标移动轨迹经过的多个位置点具体包括以下步骤SlOll :记录鼠标第一按键按下事件发生时光标在地图上所处位置点的像素坐标。在本实施例中,在屏幕区域地图范围内监听鼠标事件,本实施例通过记录鼠标第一按键被按下后鼠标光标移动的轨迹确定限定区域。当鼠标第一按键被按下时,即为用户利用鼠标画线开始,记录鼠标第一按键被按下时鼠标光标位置的像素坐标即为画线的开始位置点。S1012 :记录所述鼠标第一按键按下事件后鼠标移动事件过程中,光标经过的各位置点的像素坐标。通过记录鼠标第一按键被按下时鼠标光标移动轨迹上的点的像素坐标,即可获得通过鼠标光标移动所确定的限定区域。S1013 :所述鼠标移动事件后发生鼠标第一按键弹起事件时,结束记录。鼠标第一按键弹起则画线结束,通过顺序连接记录的各位置点,即可获得限定区域。本实施例中,用户可通过按下鼠标第一按键并拖动鼠标,通过鼠标光标在屏幕区域地图范围内画线,以确定查找区域,确定区域以鼠标第一按键弹起时结束。上述方法简单易于操作,并且用户可利用上述方法画出想要选取的查找区域。区域形状可为任意规则或 者不规则的形状。图4为本发明的基于地图限定区域的对象查找方法的又一实施例的流程图,如图4所示,在图I所示实施例的基础上,步骤S40根据限定区域的面积以及地图的缩放级别在地图上显示查找到的对象数据具体包括以下步骤S401 :获取限定区域的面积及选定该限定区域时地图的缩放级别。当确定了有效的限定区域后,可确定该限定区域的外接矩形的面积作为该限定区域的近似面积S。通过地图API直接获取选定该限定区域时地图的缩放级别。S402:根据预设的地图标注覆盖物在地图上的展示密度、限定区域的面积、选定该限定区域时地图的缩放级别以及地图当前的缩放级别确定展示对象数据的显示个数。本实施例中,通过地图API获取当前的地图缩放级别,并根据预设的地图标注覆盖物在地图上的展示密度、限定区域的面积、选定该限定区域时地图的缩放级别以及地图当前的缩放级别确定展示对象数据的显示个数。优选地,作为一种可实施方式,可根据SXDX21, 确定展示对象数据的显示个数,其中L’为当前的缩放级别,L为选定所述限定区域时地图的缩放级别,D为预设的地图标注覆盖物在地图上的展示密度。S403 :根据显示个数在地图上显示相应个数的对象数据。本实施例中,根据限定区域的面积、地图的缩放级别以及预设的地图标注覆盖物展示密度在地图上显示对象数据,更合理的将对象数据展示给用户,提高用户体验效果。本领域普通技术人员可以理解实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
权利要求
1.一种基于地图限定区域的对象查找方法,其特征在于,包括 确定地图上的根据鼠标光标移动轨迹所选定的至少一个限定区域; 确定所述限定区域对应的地理范围; 从预置的数据库中查找与所述地理范围、查询关键字均匹配的对象数据; 根据所述限定区域的面积以及地图的缩放级别在地图上显示查找到的对象数据。
2.根据权利要求I所述的方法,其特征在于,所述确定地图上的根据鼠标光标移动轨迹所选定的至少一个限定区域包括 依次记录地图上鼠标光标移动轨迹经过的多个位置点; 确定所述多个位置点中所有记录次序相邻的两个位置点之间的线段,若存在两条无共同位置点的线段有交点,或者不存在两条无共同位置点的线段有交点、但存在一个线段外的位置点到该线段的距离在预设的误差范围内,则获取所述至少一个限定区域。
3.根据权利要求I所述的方法,其特征在于,所述确定地图上的根据鼠标光标移动轨迹所选定的至少一个限定区域之后,还包括 在地图上显示所述限定区域。
4.根据权利要求2所述的方法,其特征在于,所述依次记录地图上鼠标光标移动轨迹经过的多个位置点具体包括 记录鼠标第一按键按下事件发生时光标在地图上所处位置点的像素坐标; 记录所述鼠标第一按键按下事件后鼠标移动事件过程中,光标经过的各位置点的像素坐标; 所述鼠标移动事件后发生鼠标第一按键弹起事件时,结束记录。
5.根据权利要求I所述的方法,其特征在于,所述根据所述限定区域的面积以及地图的缩放级别在地图上显示对象数据包括 获取所述限定区域的面积及选定所述限定区域时地图的缩放级别; 根据预设的地图标注覆盖物在地图上的展示密度、所述限定区域的面积、所述选定所述限定区域时地图的缩放级别以及地图当前的缩放级别确定展示对象数据的显示个数; 根据所述显示个数在地图上显示相应个数的对象数据。
6.根据权利要求5所述的方法,其特征在于,所述根据预设的地图标注覆盖物在地图上的展示密度、所述限定区域的面积、所述选定所述限定区域时地图的缩放级别以及地图当前的缩放级别确定展示对象数据的显示个数具体包括 根据SXDXf -L确定展示对象数据的显示个数,其中L’为当前的缩放级别,L为选定所述限定区域时地图的缩放级别,D为预设的地图标注覆盖物在地图上的展示密度。
全文摘要
本发明提供一种基于地图限定区域的对象查找方法。该方法包括确定地图上的根据鼠标光标移动轨迹所选定的至少一个限定区域;确定所述限定区域对应的地理范围;从预置的数据库中查找与所述地理范围、查询关键字均匹配的对象数据;根据所述限定区域的面积以及地图的缩放级别在地图上显示查找到的对象数据。本发明的基于地图限定区域的对象查找方法,通过记录鼠标在地图上移动所画出的限定区域,准确定位需要的查找区域,提高查找效率和精确性。
文档编号G06F17/30GK102890697SQ20121020927
公开日2013年1月23日 申请日期2012年6月20日 优先权日2012年6月20日
发明者杜小勇, 刘红岩, 何军, 杨春苗 申请人:杜小勇