地理圍欄判斷方法及系統的制作方法
【專利摘要】本發明提供了一種地理圍欄判斷方法及系統,本發明通過求地理圍欄的多邊形的多層最小外包矩形,其中,多邊形包括多個頂點,下一層的每兩個最小外包矩形包含于上一層的某個最小外包矩形內;判斷坐標點是否在最底層的某個最小外包矩形內,最底層的最小外包矩形為第三層的最小外包矩形;如果不在,則判斷坐標點不在所述地理圍欄內;如果在,則由坐標點向任意方向引出一條射線,進一步判斷所述射線是否與最底層的最小外包矩形內的地理圍欄的多邊形的線段相交,若相交,根據交點數判斷所述坐標點是否在地理圍欄內,若不相交,則判斷所述坐標點不在地理圍欄內,本發明可以更快速、高效地判斷坐標點是否在地理圍欄內,復雜度可以降低到O(logn)。
【專利說明】
地理圍欄判斷方法及系統
技術領域
[0001 ]本發明涉及一種地理圍欄判斷方法及系統。
【背景技術】
[0002]地理圍欄(Geo-fencing)是LBS的一種新應用,就是用一個虛擬的柵欄圍出一個虛擬地理邊界。當手機進入、離開某個特定地理區域,或在該區域內活動時,手機可以接收自動通知和警告。地理圍欄可應用于如下領域:
I)位置社交網站就可以幫助用戶在進入如圖1中某一地區時I自動登記。
[0003]2)當用戶進入如圖1中某個商場I的時候,手機自動收到相應商場發送的優惠券push消息。
[0004]3)如圖2所示,可應用于兒童定位手表,圈出安全活動范圍等。
[0005]地理圍欄一般是把地圖上的很多點連起來形成一個多邊形區域,如何判斷點在多邊形內部呢?可以通過射線法來判斷檢測對象的坐標點是否在多邊形內部。從該坐標點出發沿著任意方向畫一條射線,依次判斷該射線與每條邊的交點,并統計交點個數,如果交點數為奇數,則判斷該坐標點在多邊形內部,如果交點數為偶數,則判斷該坐標點在多邊形的外部,射線法對凸和非凸多邊形都適用,復雜度為O(N),其中,N為邊數,多邊形有N個頂點。
[0006]另外,還有一些復雜的情況需要特殊處理:
I)如果射線經過多頂點:當射線經過頂點時,判斷就會出現異常情況,由于每個頂點是多邊形兩條邊的公共頂點,所以現在規定,射線與兩條邊的公共頂點的交點個數只計算一次,避免重復計算。
[0007]2)射線與多邊形的邊重合:這種情況不能用交點數的奇偶性來判斷了,要快速地判斷這個點是否在多邊形的邊上。
【發明內容】
[0008]本發明的目的在于提供一種地理圍欄判斷方法及系統,能夠更快速、高效地判斷坐標點是否在地理圍欄內。
[0009]為解決上述問題,本發明提供一種地理圍欄判斷方法,包括:
求地理圍欄的多邊形的多層最小外包矩形,其中,所述多邊形包括多個頂點,下一層的每兩個最小外包矩形包含于上一層的某個最小外包矩形內;
判斷坐標點是否在最底層的某個最小外包矩形內,最底層的最小外包矩形為第三層的最小外包矩形;
如果不在任何一個最底層的最小外包矩形內,則判斷坐標點不在所述地理圍欄內;
如果在最底層的某個最小外包矩形內,則由坐標點向任意方向引出一條射線,進一步判斷所述射線是否與最底層的最小外包矩形內的地理圍欄的多邊形的線段相交,若相交,根據交點數判斷所述坐標點是否在地理圍欄內,若不相交,則判斷所述坐標點不在地理圍欄內。
[0010]進一步的,在上述方法中,判斷坐標點是否在最底層的某個最小外包矩形內,包括:通過射線法由最上層至最底層判斷坐標點是否在上一層的最小外包矩形內,
若在,進一步判斷所述坐標點是否在該層最小外包矩形所包含的下一層的某個外包矩形內,若在,重復本步驟直至判斷為所述坐標點在最底層的某個最小外包矩形內,若不在,則判斷所述坐標點不在任何一個最底層的最小外包矩形內;
若不在,則判斷為所述坐標點不在任何一個最底層的最小外包矩形內。
[0011]進一步的,在上述方法中,根據交點數判斷坐標點是否在地理圍欄內,包括:
若交點數為偶數,則判斷坐標點在地理圍欄的外部;
若交點數為奇數,則判斷坐標點在地理圍欄的內部。
[0012]進一步的,在上述方法中,求地理圍欄的多邊形的多層最小外包矩形,包括:
求地理圍欄的多邊形的最小外包矩形,將地理圍欄的多邊形的最小外包矩形作為最上層的最小外包矩形;
將上一層的最小外包矩形進一步基本平分為兩個下一層的最小外包矩形,重復本步驟,直至最底層的最小外包矩形內的頂點數少于預設個數。
[0013]進一步的,在上述方法中,所述預設個數為5個。
[0014]進一步的,在上述方法中,將上一層的最小外包矩形進一步基本平分為兩個下一層的最小外包矩形,包括:
若上一層的最小外包矩形內的頂點個數N為偶數,則平分得到的下一層的兩個最小外包矩形的頂點個數分別為N/2;
若上一層的最小外包矩形內的頂點個數N為奇數,則平分得到的下一層的兩個最小外包矩形的頂點個數分別為N-1/2和N+1/2。
[0015]根據本發明的另一面,提供一種地理圍欄判斷系統,包括:
多層最小外包矩形獲取模塊,用于求地理圍欄的多邊形的多層最小外包矩形,其中,所述多邊形包括多個頂點,下一層的每兩個最小外包矩形包含于上一層的某個最小外包矩形內;
判斷模塊,用于判斷坐標點是否在最底層的某個最小外包矩形內,最底層的最小外包矩形為第三層的最小外包矩形;如果不在任何一個最底層的最小外包矩形內,則判斷坐標點不在所述地理圍欄內;如果在最底層的某個最小外包矩形內,則由坐標點向任意方向引出一條射線,進一步判斷所述射線是否與最底層的最小外包矩形內的地理圍欄的多邊形的線段相交,若相交,根據交點數判斷所述坐標點是否在地理圍欄內,若不相交,則判斷所述坐標點不在地理圍欄內。
[0016]進一步的,在上述系統中,所述判斷模塊,用于通過射線法由最上層至最底層判斷坐標點是否在上一層的最小外包矩形內,若在,進一步判斷所述坐標點是否在該層最小外包矩形所包含的下一層的某個外包矩形內,若在,重復本步驟直至判斷為所述坐標點在最底層的某個最小外包矩形內,若不在,則判斷所述坐標點不在任何一個最底層的最小外包矩形內;若不在,則判斷為所述坐標點不在任何一個最底層的最小外包矩形內。
[0017]進一步的,在上述系統中,所述判斷模塊,用于若交點數為偶數,則判斷坐標點在地理圍欄的外部;若交點數為奇數,則判斷坐標點在地理圍欄的內部。
[0018]進一步的,在上述系統中,多層最小外包矩形獲取模塊,用于求地理圍欄的多邊形的最小外包矩形,將地理圍欄的多邊形的最小外包矩形作為最上層的最小外包矩形;將上一層的最小外包矩形進一步基本平分為兩個下一層的最小外包矩形,重復本步驟,直至最底層的最小外包矩形內的頂點數少于預設個數。
[0019]進一步的,在上述系統中,所述預設個數為5個。
[0020]進一步的,在上述系統中,多層最小外包矩形獲取模塊,用于若上一層的最小外包矩形內的頂點個數N為偶數,則平分得到的下一層的兩個最小外包矩形的頂點個數分別為N/2;若上一層的最小外包矩形內的頂點個數N為奇數,則平分得到的下一層的兩個最小外包矩形的頂點個數分別為N-1/2和N+1/2。
[0021]與現有技術相比,本發明提供了一種地理圍欄判斷方法及系統,本發明通過求地理圍欄的多邊形的多層最小外包矩形,其中,多邊形包括多個頂點,下一層的每兩個最小外包矩形包含于上一層的某個最小外包矩形內;判斷坐標點是否在最底層的某個最小外包矩形內,最底層的最小外包矩形為第三層的最小外包矩形;如果不在,則判斷坐標點不在所述地理圍欄內;如果在,則由坐標點向任意方向引出一條射線,進一步判斷所述射線是否與最底層的最小外包矩形內的地理圍欄的多邊形的線段相交,若相交,根據交點數判斷所述坐標點是否在地理圍欄內,若不相交,則判斷所述坐標點不在地理圍欄內,本發明可以更快速、高效地判斷坐標點是否在地理圍欄內,復雜度可以降低到O(1gn)。
【附圖說明】
[0022]圖1是地理圍欄的一種應用方式;
圖2是地理圍欄的另一種應用方式;
圖3是本發明一實施例的地理圍欄判斷方法的流程圖;
圖4是本發明一實施例的多層最小外包矩形示意圖;
圖5是本發明地理圍欄判斷方法一優選的實施例的流程圖;
圖6是本發明地理圍欄判斷方法另一優選的實施例的流程圖;
圖7是本發明一實施例的最上層的最小外包矩形的示意圖;
圖8是本發明一實施例的第二層的最小外包矩形的示意圖;
圖9是本發明一實施例的最底層的最小外包矩形的不意圖;
圖10是本發明一實施例的地理圍欄判斷系統的模塊圖。
【具體實施方式】
[0023]為使本發明的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖和【具體實施方式】對本發明作進一步詳細的說明。
[0024]如圖3所示,本發明提供一種地理圍欄判斷方法,包括:
步驟SI,求地理圍欄的多邊形的多層最小外包矩形,其中,所述多邊形包括多個頂點,下一層的每兩個最小外包矩形包含于上一層的某個最小外包矩形內;如圖4所示,一地理圍欄的多邊形的多層最小外包矩形為3層,最頂層的最小外包矩形又被分為第二層的2個最小外包矩形,第二層的兩個最小外包矩形又各自分為第三層的2個最小外包矩形,第三層共有4個最小外包矩形,第三層的每個最小外包矩形包含了 3到4個頂點;
步驟S2,判斷坐標點是否在最底層的某個最小外包矩形內,如圖4所示,最底層的最小外包矩形為第三層的最小外包矩形;
步驟S3,如果不在任何一個最底層的最小外包矩形內,則判斷坐標點不在所述地理圍欄內;步驟S4,如果在最底層的某個最小外包矩形內,則由坐標點向任意方向引出一條射線,進一步判斷所述射線是否與最底層的最小外包矩形內的地理圍欄的多邊形的線段相交,若相交,根據交點數判斷所述坐標點是否在地理圍欄內,若不相交,則判斷所述坐標點不在地理圍欄內。本實施例可以更快速、高效地判斷坐標點是否在地理圍欄內,復雜度可以降低到O(1gn),11為邊數。
[0025]優選的,如圖5所示,步驟S2,判斷坐標點是否在最底層的某個最小外包矩形內,包括:
步驟S21,通過射線法由最上層至最底層判斷坐標點是否在上一層的最小外包矩形內,若在,步驟S22,進一步判斷所述坐標點是否在該層最小外包矩形所包含的下一層的某個外包矩形內,若在,重復本步驟直至步驟S23,判斷為所述坐標點在最底層的某個最小外包矩形內,若不在,步驟S24,則判斷所述坐標點不在任何一個最底層的最小外包矩形內;若不在,步驟S24,則判斷為所述坐標點不在任何一個最底層的最小外包矩形內。從而實現快速、準確地判斷坐標點是否在最底層的某個最小外包矩形內。
[0026]優選的,根據交點數判斷坐標點是否在地理圍欄內,包括:
若交點數為偶數,則判斷坐標點在地理圍欄的外部;
若交點數為奇數,則判斷坐標點在地理圍欄的內部。從而能簡單、準確地判斷坐標點是否在地理圍欄內。
[0027]優選的,如圖6所示,步驟SI,求地理圍欄的多邊形的多層最小外包矩形,包括:
步驟S11,求地理圍欄的多邊形的最小外包矩形,將地理圍欄的多邊形的最小外包矩形作為最上層的最小外包矩形;例如,最上層的最小外包矩形如圖7所示;
步驟S12,將上一層的最小外包矩形進一步基本平分為兩個下一層的最小外包矩形,重復本步驟,直至步驟S13,最底層的最小外包矩形內的頂點數少于預設個數。例如,最上層的最小外包矩形進一步分為如圖8所示2個第二層的最小外包矩形,重復將上層的每個最小外包矩形進一步分為2個下層的最小外包矩形,最終得到如圖9所示的最底層的多個最小外包矩形。
[0028]優選的,所述預設個數為5個。
[0029]優選的,步驟S12,將上一層的最小外包矩形進一步基本平分為兩個下一層的最小外包矩形,包括:
若上一層的最小外包矩形內的頂點個數N為偶數,則平分得到的下一層的兩個最小外包矩形的頂點個數分別為N/2;
若上一層的最小外包矩形內的頂點個數N為奇數,則平分得到的下一層的兩個最小外包矩形的頂點個數分別為N-1/2和N+1/2。
[0030]實施例二
如圖10所示,本發明還提供另一種提供一種地理圍欄判斷系統,包括:
多層最小外包矩形獲取模塊I,用于求地理圍欄的多邊形的多層最小外包矩形,其中,所述多邊形包括多個頂點,下一層的每兩個最小外包矩形包含于上一層的某個最小外包矩形內; 判斷模塊2,用于判斷坐標點是否在最底層的某個最小外包矩形內,最底層的最小外包矩形為第三層的最小外包矩形;如果不在任何一個最底層的最小外包矩形內,則判斷坐標點不在所述地理圍欄內;如果在最底層的某個最小外包矩形內,則由坐標點向任意方向引出一條射線,進一步判斷所述射線是否與最底層的最小外包矩形內的地理圍欄的多邊形的線段相交,若相交,根據交點數判斷所述坐標點是否在地理圍欄內,若不相交,則判斷所述坐標點不在地理圍欄內。
[0031]進一步的,在上述系統中,所述判斷模塊,用于通過射線法由最上層至最底層判斷坐標點是否在上一層的最小外包矩形內,若在,進一步判斷所述坐標點是否在該層最小外包矩形所包含的下一層的某個外包矩形內,若在,重復本步驟直至判斷為所述坐標點在最底層的某個最小外包矩形內,若不在,則判斷所述坐標點不在任何一個最底層的最小外包矩形內;若不在,則判斷為所述坐標點不在任何一個最底層的最小外包矩形內。
[0032]進一步的,在上述系統中,所述判斷模塊,用于若交點數為偶數,則判斷坐標點在地理圍欄的外部;若交點數為奇數,則判斷坐標點在地理圍欄的內部。
[0033]進一步的,在上述系統中,多層最小外包矩形獲取模塊,用于求地理圍欄的多邊形的最小外包矩形,將地理圍欄的多邊形的最小外包矩形作為最上層的最小外包矩形;將上一層的最小外包矩形進一步基本平分為兩個下一層的最小外包矩形,重復本步驟,直至最底層的最小外包矩形內的頂點數少于預設個數。
[0034]進一步的,在上述系統中,所述預設個數為5個。
[0035]進一步的,在上述系統中,多層最小外包矩形獲取模塊,用于若上一層的最小外包矩形內的頂點個數N為偶數,則平分得到的下一層的兩個最小外包矩形的頂點個數分別為N/2;若上一層的最小外包矩形內的頂點個數N為奇數,則平分得到的下一層的兩個最小外包矩形的頂點個數分別為N-1/2和N+1/2。
[0036]實施例二的其它詳細內容,具體可參風實施例一的對應部分,在此,不再贅述。
[0037]綜上所述,本發明通過求地理圍欄的多邊形的多層最小外包矩形,其中,多邊形包括多個頂點,下一層的每兩個最小外包矩形包含于上一層的某個最小外包矩形內;判斷坐標點是否在最底層的某個最小外包矩形內,最底層的最小外包矩形為第三層的最小外包矩形;如果不在,則判斷坐標點不在所述地理圍欄內;如果在,則由坐標點向任意方向引出一條射線,進一步判斷所述射線是否與最底層的最小外包矩形內的地理圍欄的多邊形的線段相交,若相交,根據交點數判斷所述坐標點是否在地理圍欄內,若不相交,則判斷所述坐標點不在地理圍欄內,本發明可以更快速、高效地判斷坐標點是否在地理圍欄內,復雜度可以降低到O(1gn) ο
[0038]本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。
[0039]專業人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。
[0040]顯然,本領域的技術人員可以對發明進行各種改動和變型而不脫離本發明的精神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其等同技術的范圍之內,則本發明也意圖包括這些改動和變型在內。
【主權項】
1.一種地理圍欄判斷方法,其特征在于,包括: 求地理圍欄的多邊形的多層最小外包矩形,其中,所述多邊形包括多個頂點,下一層的每兩個最小外包矩形包含于上一層的某個最小外包矩形內; 判斷坐標點是否在最底層的某個最小外包矩形內,最底層的最小外包矩形為第三層的最小外包矩形; 如果不在任何一個最底層的最小外包矩形內,則判斷坐標點不在所述地理圍欄內; 如果在最底層的某個最小外包矩形內,則由坐標點向任意方向引出一條射線,進一步判斷所述射線是否與最底層的最小外包矩形內的地理圍欄的多邊形的線段相交,若相交,根據交點數判斷所述坐標點是否在地理圍欄內,若不相交,則判斷所述坐標點不在地理圍欄內。2.如權利要求1所述的地理圍欄判斷方法,其特征在于,判斷坐標點是否在最底層的某個最小外包矩形內,包括: 通過射線法由最上層至最底層判斷坐標點是否在上一層的最小外包矩形內, 若在,進一步判斷所述坐標點是否在該層最小外包矩形所包含的下一層的某個外包矩形內,若在,重復本步驟直至判斷為所述坐標點在最底層的某個最小外包矩形內,若不在,則判斷所述坐標點不在任何一個最底層的最小外包矩形內; 若不在,則判斷為所述坐標點不在任何一個最底層的最小外包矩形內。3.如權利要求1所述的地理圍欄判斷方法,其特征在于,根據交點數判斷坐標點是否在地理圍欄內,包括: 若交點數為偶數,則判斷坐標點在地理圍欄的外部; 若交點數為奇數,則判斷坐標點在地理圍欄的內部。4.如權利要求3所述的地理圍欄判斷方法,其特征在于,求地理圍欄的多邊形的多層最小外包矩形,包括: 求地理圍欄的多邊形的最小外包矩形,將地理圍欄的多邊形的最小外包矩形作為最上層的最小外包矩形; 將上一層的最小外包矩形進一步基本平分為兩個下一層的最小外包矩形,重復本步驟,直至最底層的最小外包矩形內的頂點數少于預設個數。5.如權利要求4所述的地理圍欄判斷方法,其特征在于,所述預設個數為5個。6.如權利要求4所述的地理圍欄判斷方法,其特征在于,將上一層的最小外包矩形進一步基本平分為兩個下一層的最小外包矩形,包括: 若上一層的最小外包矩形內的頂點個數N為偶數,則平分得到的下一層的兩個最小外包矩形的頂點個數分別為N/2; 若上一層的最小外包矩形內的頂點個數N為奇數,則平分得到的下一層的兩個最小外包矩形的頂點個數分別為N-1/2和N+1/2。7.一種地理圍欄判斷設備,其特征在于,包括: 多層最小外包矩形獲取模塊,用于求地理圍欄的多邊形的多層最小外包矩形,其中,所述多邊形包括多個頂點,下一層的每兩個最小外包矩形包含于上一層的某個最小外包矩形內; 判斷模塊,用于判斷坐標點是否在最底層的某個最小外包矩形內,最底層的最小外包矩形為第三層的最小外包矩形;如果不在任何一個最底層的最小外包矩形內,則判斷坐標點不在所述地理圍欄內;如果在最底層的某個最小外包矩形內,則由坐標點向任意方向引出一條射線,進一步判斷所述射線是否與最底層的最小外包矩形內的地理圍欄的多邊形的線段相交,若相交,根據交點數判斷所述坐標點是否在地理圍欄內,若不相交,則判斷所述坐標點不在地理圍欄內。8.如權利要求7所述的地理圍欄判斷設備,其特征在于,所述判斷模塊,用于通過射線法由最上層至最底層判斷坐標點是否在上一層的最小外包矩形內,若在,進一步判斷所述坐標點是否在該層最小外包矩形所包含的下一層的某個外包矩形內,若在,重復本步驟直至判斷為所述坐標點在最底層的某個最小外包矩形內,若不在,則判斷所述坐標點不在任何一個最底層的最小外包矩形內;若不在,則判斷為所述坐標點不在任何一個最底層的最小外包矩形內。9.如權利要求7所述的地理圍欄判斷設備,其特征在于,所述判斷模塊,用于若交點數為偶數,則判斷坐標點在地理圍欄的外部;若交點數為奇數,則判斷坐標點在地理圍欄的內部。10.如權利要求9所述的地理圍欄判斷設備,其特征在于,多層最小外包矩形獲取模塊,用于求地理圍欄的多邊形的最小外包矩形,將地理圍欄的多邊形的最小外包矩形作為最上層的最小外包矩形;將上一層的最小外包矩形進一步基本平分為兩個下一層的最小外包矩形,重復本步驟,直至最底層的最小外包矩形內的頂點數少于預設個數。11.如權利要求10所述的地理圍欄判斷設備,其特征在于,所述預設個數為5個。12.如權利要求10所述的地理圍欄判斷設備,其特征在于,多層最小外包矩形獲取模塊,用于若上一層的最小外包矩形內的頂點個數N為偶數,則平分得到的下一層的兩個最小外包矩形的頂點個數分別為N/2;若上一層的最小外包矩形內的頂點個數N為奇數,則平分得到的下一層的兩個最小外包矩形的頂點個數分別為N-1/2和N+1/2。
【文檔編號】H04W4/02GK105959913SQ201610242654
【公開日】2016年9月21日
【申請日】2016年4月19日
【發明人】趙軍輝
【申請人】上海卓易科技股份有限公司