如何使用空间数据库检查 AIS 信号是不是从地理围栏发出?
Posted
技术标签:
【中文标题】如何使用空间数据库检查 AIS 信号是不是从地理围栏发出?【英文标题】:How to check an AIS signal is outgoing from a geofence with spatial database?如何使用空间数据库检查 AIS 信号是否从地理围栏发出? 【发布时间】:2021-10-18 06:37:45 【问题描述】:我在 AWS Redshift 表 A 上有数万个地理围栏。
并且每 1 小时在表 B 上记录数以万计的 AIS 信号。
但是,我想检查并记录整个地理围栏的传入或传出 AIS。
我怎样才能做到这一点?
【问题讨论】:
【参考方案1】:根据您对问题的描述,我猜需要使用 ST_Polygon() 将地理围栏转换为多边形。获得多边形(表 A)后,您需要获取 AIS 信号并使用 ST_Point() 将它们转换为地理位置点(表 B)。
当您将所有数据转换为兼容的地理位置格式时 - 您将使用 ST_Contains()。
我要补充一点,在 Redshift 中,地理位置数据可能需要一段时间,而且您很可能需要对所有多边形与所有地理位置点进行笛卡尔积。
希望我能正确理解您的问题。
【讨论】:
其实我已经使用 ST_Contains() 函数来检查传入的。但我想知道如何检查从地理围栏内部到外部的传出信号。此外,正如您在回复中提到的,笛卡尔积查询太重了。因此,我正在寻找解决方案。 你的桌子 B 看起来怎么样?即您有源 GPS 位置和目标 GPS 位置吗?有方向的迹象吗? 表B有纬度、经度、航向等字段,没有目标位置的坐标。以上是关于如何使用空间数据库检查 AIS 信号是不是从地理围栏发出?的主要内容,如果未能解决你的问题,请参考以下文章