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 //緯度
}
專案現場呼叫介面測試,能夠成功的出現經緯度,該功能新增完成。