專利名稱:基于地圖限定區域的對象查找方法
技術領域:
本發明涉及一種查找方法,尤其涉及一種基于地圖限定區域的對象查找方法。
背景技術:
在線網絡地圖使人們能夠快速簡單的獲取位置信息,同時基于地圖的查找系統也不再只是用于查找地理位置,還可運用地理限定區域作為查找條件,對該地理限定區域范圍內的對象進行查找。通常,用戶在運用地理限定區域作為查找條件時,只能指定規則的區域(如圓形、矩形)作為地理范圍的限制條件,不能準確定位需要的查找區域,使得查找效率低、精確性·差。
發明內容
本發明提供一種基于地圖限定區域的對象查找方法,以準確定位需要的查找區域,提高查找效率和精確性。為實現本發明的目的,本發明提供了一種基于地圖限定區域的對象查找方法,包括確定地圖上的根據鼠標移動軌跡所選定的至少一個限定區域;確定該限定區域對應的地理范圍;從預置的數據庫中查找與所述地理范圍、查詢關鍵字均匹配的對象數據;根據該限定區域的面積以及地圖的縮放級別在地圖上顯示查找到的對象數據。本發明的有益效果在于,通過記錄鼠標在地圖上移動所畫出的限定區域,準確定位需要的查找區域,提高查找效率和精確性。
圖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日
發明者杜小勇, 劉紅巖, 何軍, 楊春苗 申請人:杜小勇