1. 程式人生 > 其它 >EasyCVR國標GB28181方式新增通道GPS位置獲取介面的實現過程

EasyCVR國標GB28181方式新增通道GPS位置獲取介面的實現過程

由於前不久我們在EasyGBS上添加了視訊通道的實時GPS定位功能,根據更多的專案需求,我們現需在EasyCVR新增國標通道的GPS位置獲取功能,和其他功能一樣,這個功能我們也是通過介面呼叫來實現,本文分享一下我們的實現過程。

分析需求,首先需要獲取歷史位置資訊,所以需要將每次新的GPS位置資訊記錄下來,然後在根據使用者傳入的搜尋條件去查詢通道歷史的經緯度資訊。

設計資料庫新增如下表,新增裝置名稱,建立時間,裝置id,通道id,通道名稱,經緯度欄位等:

新增如下程式碼,根據前端傳入的q搜尋欄位,來查詢對應裝置的經緯度

q := db.SQLite.Model(models.Channel{}).Where("[index]=?", uint(id))

q.Find(&gbschannels)

if len(gbschannels) != 1 {

c.AbortWithStatusJSON(http.StatusBadRequest, "channel 值錯誤")

return

}

gbsdevices := make([]*models.Device, 0)

q = db.SQLite.Model(models.Device{}).Where("[index]=?", uint(dev))

q.Find(&gbsdevices)

if len(gbsdevices) != 1 {

c.AbortWithStatusJSON(http.StatusBadRequest, "device 值錯誤")

return

}

type Animal struct {

CreateTime models2.JSONTime

DeviceID string

ChannelID string

Longitude float64

Latitude float64 //緯度

}

專案現場呼叫介面測試,能夠成功的出現經緯度,該功能新增完成。