1. 程式人生 > >四叉樹資料編碼結構在電子狗中的應用

四叉樹資料編碼結構在電子狗中的應用

說到電子狗,無非就是通過實時GPS資料,實時的從資料庫中查詢當前地點和方向是否有電子狗資料。在此,簡單說明一下電子狗資料包括什麼:所謂電子狗就是道路上的攝像頭、探頭,包含的資訊有:經緯度、方向角、型別等資訊。下面我們就做一個Android本地查詢的小Demo。

 在做這個Demo之前,我們要先理解兩個問題:

1、電子狗資料比較大,我們怎樣儲存到資料庫中,以什麼結構方式儲存到資料庫中呢?

2、實時查詢,當前GPS怎麼準確的快速的找到對應的電子狗呢。

解決了以上兩個問題,基本上把思路就理清楚了。

下面我們就根據這兩個問題來一一思考一下。

1、電子狗資料量大,我們不可能一股腦的放在一張表裡面,所以要進行分類。那麼我們怎麼對現有的電子狗資料進行分類呢,一般來說有兩種分類方式:按行政區域分類和按格網經緯度分類。行政區域分類本人沒有搞過,也不知道怎麼來組織資料,我這裡選擇的是按照格網經緯度分類。分類方式是按照鬆散四叉樹結構進行分類的。

所謂鬆散四叉樹,就是一個平面不斷的分成四個面積相等的長方形,鬆散就是將最終的長方形往外擴大一點點。



如上圖所示,基本上就是這個思路。演算法也就是這樣一個演算法將一整套的電子狗資料進行入庫。

2、查詢,利用GPS經緯度,首先進行查詢對應的編碼,找到對應的表,然後在表中進行查詢相應的電子眼。

查詢方式用到的是四叉樹方式,不是鬆散四叉樹,鬆散四叉樹是電子眼資料入庫用的。四叉樹找到對應的表就可以直接查詢電子眼資料了。

總結一下:電子眼資料入庫及GPS查詢電子眼就是通過這樣一個方式進行的。