PostgreSQL , 電子圍欄 , 共用自行車 , 共用充電寶 , 共用xxx , 菜鳥 , 航空管制 , 無人飛行器 , pipelinedb , 流式計算 ...
背景
電子圍欄,這個在GIS應用中非常常見的詞。在很多業務場景中都可以使用:
電子圍欄的常見手段是圈出一塊,或者一些多邊形。當被監控對象在多邊形內或者多邊形外時(根據業務模型),作為一個判斷條件,觸發一些業務規則。
1、禁飛區
玩大疆無人機的話,你一定要知道哪裡是禁飛區,否則可能違法被抓,但是你可能並不知道哪裡是禁飛區,還有飛行高度的限制。
有了電子圍欄,可以在飛行器內置這樣的功能,你就可以放心的飛了。比如到達了禁飛區後,飛行器可以發出告警,禁止飛行。
2、共用單車還車點
共用單車亂擺放是個問題,原因是什麼地方都能還車。使用電子圍欄,可以約束用戶的還車點,只允許用戶將自行車停在某個空間內,或不在某個空間內才能還車。
3、汽車禁行區
例如,某些汽車,在某個時間段不允許出現在某個區域內。
例如限行車輛,例如危化品車輛、黃沙車、貨車等的行駛範圍。以往,我們只能靠攝像頭、或者靠警力來管理。加入電子圍欄,一切都變得更簡單。
4、國界線
這個是有非常鮮明的地理屬性的,電子圍欄,結合流式計算,可以非常實時的發現異常。
5、山頭線
我記得小時候,我們那裡的班車線路都是承包的,誰要是敢亂拉客,車子可能是會被砸掉的。實際上這個也是一些商業邊界的問題,如果商業邊界涉及到地理信息,通過電子圍欄,可以更加方便的實現邊界控制和管理。
6、遠程打卡,當你進入了辦公區域附近(電子圍欄)時,才允許打卡。
7、遠程辦公管理,公司可以劃定一些可以辦公的常用地的多邊形,當員工出了這個區域時,觸發事件。
8、公務用車、商用車輛的行駛區域管理,出了區域,可以觸發事件。
9、放牧管理,例如在大草原放養的動物,可以掛上GPS跟蹤器,劃定電子圍欄,出了區域,觸發事件。
10、假釋人員的管理,不在需要投入大量警力跟蹤假釋人員。當然人的管理更加複雜,因為跟蹤器可能更換。
11、... ...
試想一下,當每個對象都帶上空間屬性後,還有很多很多很多場景,可以設置電子圍欄。
空間數據的處理,將會是一片巨大的藍海。
圍欄除了空間屬性,還可以有其他屬性,PostgreSQL提供了btree_gist介面,可以對空間、標量欄位建立聯合索引,提高性能。
https://www.postgresql.org/docs/10/static/btree-gist.html
同時PostgreSQL還支持空間獨立排他約束,可以防止圍欄重疊。
https://www.postgresql.org/docs/10/static/ddl-constraints.html#ddl-constraints-exclusion
PostgreSQL 深耕空間數據管理數十年,一定能服務好這片業務,一起來為人類發展做出貢獻。
電子圍欄性能
電子圍欄中,最常用的手段是點面判斷,對於共用單車業務,我們為了防止自行車亂停放,可以圈定可以換車、或者不能換車的點(視業務需求),創建很多的多邊形區域,當用戶還車時,上報車輛位置,同時判斷是不是落在可以換車的點,或者不能換車的點內。決定用戶是否可以在當地還車。
可能有千萬、甚至更多的多邊形面。
這個需求和菜鳥的配送調度類似,也有點面判斷的需求,下麵是一個設計和性能測試
《菜鳥末端軌跡 - 電子圍欄(解密支撐每天251億個包裹的資料庫) - 阿裡雲RDS PostgreSQL最佳實踐》
1000萬個多邊形,根據位置查詢這個位置在哪個面裡面,或者有沒有麵包含了這個點。
PostgreSQL單機可以達到251億次/天
的點面判斷請求的性能。
作者丨digoal
本文來自博客園,作者:古道輕風,轉載請註明原文鏈接:https://www.cnblogs.com/88223100/p/Application_scenarios_and_performance_of_PostgreSQL_electronic_fence.html