如何在ThingsBoard中基于经纬度查询指定区域内的设备
在ThingsBoard中查询指定区域内的设备
针对你提到的两种区域类型,可通过ThingsBoard的实体遥测过滤器实现设备筛选,具体方案如下:
1. 基于半径+中心点经纬度的查询
利用ThingsBoard内置的distance()地理空间函数,计算设备上报的经纬度与中心点的球面距离(单位:米),筛选距离小于等于指定半径的设备。
筛选表达式格式:
distance(latitude, longitude, <中心点纬度>, <中心点经度>) <= <半径(米)>
示例:
若中心点为北纬39.9042°、东经116.4074°,查询半径5000米内的设备,表达式为:
distance(latitude, longitude, 39.9042, 116.4074) <= 5000
2. 基于矩形区域(左上角+右下角坐标)的查询
通过判断设备经纬度是否落在矩形的坐标范围内实现筛选:纬度需在矩形上下边界之间,经度需在左右边界之间。
筛选表达式格式:
latitude >= <右下角纬度> AND latitude <= <左上角纬度> AND longitude >= <左上角经度> AND longitude <= <右下角经度>
(注:若左上角纬度小于右下角纬度,需交换两者取min/max范围;经度同理)
示例:
若矩形左上角坐标为北纬40.0°、东经116.3°,右下角为北纬39.8°、东经116.5°,表达式为:
latitude >= 39.8 AND latitude <= 40.0 AND longitude >= 116.3 AND longitude <= 116.5
通用操作步骤:
- 登录ThingsBoard控制台,进入实体管理页面;
- 点击添加过滤器,选择遥测过滤器;
- 在表达式输入框中填入对应筛选公式,选择目标设备类型;
- 确认条件后,页面将自动展示符合区域要求的设备。
注意:需确保设备已上报过
latitude和longitude遥测数据,筛选默认取设备最新遥测值,若需基于历史时间点筛选,可额外添加时间范围条件。
内容的提问来源于stack exchange,提问作者saeid rastak
相关产品推荐
相关产品推荐

