地理围栏实战秘籍:如何用流数据技术精准绘制动态边界?

mysmile 6 0
地理围栏实战秘籍:如何用流数据技术精准绘制动态边界?

流数据分析之地理围栏应用

作者:LX

背景

嘿,你是否在上一篇《SuperMap流数据技术及应用实践》中对“地理围栏”这个空间过滤器产生了浓厚兴趣?很多人好奇:它到底能做什么?在SuperMap产品中怎么用?效果如何?别急,本文将带你深入实战,彻底掌握流数据分析中的地理围栏应用!

一、 地理围栏简介

地理围栏是移动位置服务的革命性应用,通过虚拟栅栏划定地理边界。SuperMapiServer StreamingService利用这项技术,实时判断流数据对象是否进入或离开特定区域,精准监控其空间状态变化,为车辆追踪、安防预警等多样场景提供强大支撑。

二、 地理围栏应用实践

1、数据准备1)流数据来源:flights2w.csv(通过WebSocket发送,模拟实时流数据)2)围栏数据:fencedata.udbps:数据可点击文末链接直接下载

2、流数据服务中配置地理围栏1)先按《SuperMap流数据技术及应用实践》的实战步骤,完成数据模拟发送,并在流模型中配置WebSocket接收器与发送器。2)打开流处理模型,将“地理围栏转换器”拖入节点编辑器,连接WebSocket接收器到转换器,再连接到WebSocket发送器,如下图所示:3)单击“地理围栏转换器”,快速配置以下参数:“节点名称”:可自定义“节点描述”:选填“地理围栏数据”:必选,目前仅支持FeatureConnection类型。“名称字段名”:必填,对应地理围栏对象的Name属性字段。“ID字段名”:必填,唯一标识围栏对象的ID字段。“进入地理围栏字段名”:必填,新增字段,记录对象是否在围栏内。“状态字段名”:必填,新增字段,记录对象进入、离开或停留状态。

4)点击“FeatureConnection”,填写以下信息:“数据源类型”:udb,当前唯一支持类型“数据源连接信息”:添加”DsInfo”,按需设置多个数据源。

5)点击“DsInfo-0”标签,填写“数据源文件路径”和“数据集名称”如下:6)发布流模型,打开数据流服务并订阅,接收的数据如下图:添加地理围栏转换器前,流服务订阅数据如下:对比可见,添加地理围栏后,数据新增了geoWithin和geoStatus字段。geoWithin:标记对象是否在围栏内(0:外,1:内)。geoStatus:记录对象状态(0:未知,1:进入,2:离开,3:停留)。

附上流处理模型发布生成的streaming文件,不想手动创建可直接发布使用:

{ "sparkParameter": { "checkPointDir": "tmp", "interval": 2000 }, "stream": { "nodeDic": { "WebSocketClientSender": { "formatter": { "className":"com.supermap.bdt.streaming.formatter.GeoJsonFormatter" }, "path":"ws://localhost:8800/iserver/services/dataflow/dataflow/broadcast?token=-tDPP6TivAixmhgNik3eLWQnfuUImTou9MpVnUhDs9GAkhDISEZgRqRifQ7Puy9kn2yWggqiNTXXfWGCyS1ibA..", "nextNodes": [], "name": "WebSocketClientSender", "prevNodes": [ "GeoTaggerMapper" ], "caption": "WebSocket发送器", "className":"com.supermap.bdt.streaming.sender.WebSocketClientSender" }, "WebSocketReceiver": { "metadata": { "epsg": 3857, "fieldInfos": [ { "name": "id", "source": "1", "nType": "TEXT" }, { "name": "direction", "source": "0", "nType": "INT32" }, { "name": "x", "source": "2", "nType": "DOUBLE" }, { "name": "y", "source": "3", "nType": "DOUBLE" } ], "featureType": "POINT", "idFieldName": "id" }, "nextNodes": [ "GeoTaggerMapper" ], "reader": { "className":"com.supermap.bdt.streaming.formatter.CSVFormatter", "separator": "," }, "name": "WebSocketReceiver", "prevNodes": [], "caption": "WebSocket接收器", "className":"com.supermap.bdt.streaming.receiver.WebSocketReceiver", "url": "ws://127.0.0.1:8181" }, "GeoTaggerMapper": { "className":"com.supermap.bdt.streaming.map.GeoTaggerMapper", "caption": "地理围栏转换器", "name": "GeoTaggerMapper", "nextNodes": [ "WebSocketClientSender" ], "prevNodes": [ "WebSocketReceiver" ], "description": null, "connection": { "type": "udb", "info": [ { "server":"E:\Data\fencedata\fencedata.udb", "datasetNames": [ "regin" ] } ] }, "fenceName": "NAME", "fenceID": "SmID", "withinFieldName": "geoWithin", "statusFieldName": "geoStatus" } } }, "version": 9000}

streaming文件地理围栏参数说明:connection:围栏数据来源。 type——String类型,数据源类型

Info——Array[DsInfo]类型,数据源连接信息。

server:围栏数据路径 datasetNames:Array[String]类型,用于围栏的数据集名称 fenceName——String类型,围栏对象的Name属性字段。fenceID——String类型,唯一标识围栏对象的ID字段。withinFieldName——String类型,新增字段,记录对象是否在围栏内。statusFieldName——String类型,新增字段,记录对象状态变化。

本文所用到的数据和流模型可访问下面的链接下载:https://download.csdn.net/download/supermapsupport/11434541

立即动手下载资源,亲手配置地理围栏,解锁流数据在车辆监控、智慧城市等场景的无限可能!分享你的实践心得,一起探讨技术前沿。

相关问答

小米地理围栏原理?

地理围栏基于位置服务,当设备进入或离开特定地理区域时,自动触发通知或联动操作(如智能家居控制),实现场景化智能响应。

如何利用个灯地理围栏技术投放广告?

个灯平台依托大数据与地理围栏技术,精准定位用户实时位置,在特定区域(如商圈)投放个性化广告,提升营销转化率。

地理围栏选可活动还是不可活动?

建议选可活动围栏,因为它灵活适应临时场景(如施工区域),任务完成后可移除或重置,节省资源并提高复用性。

米家的地理围栏什么意思?

米家地理围栏是智能家居的定位功能,当设备(如手机)进入或离开预设区域时,自动执行指令(如开关电器),提升生活便捷度。

奔驰的地理围栏是什么?

奔驰地理围栏允许车主设置虚拟驾驶边界,车辆进出区域时发送提醒,辅助管理限行或安全区域,增强用车智能化体验。

速腾地理围栏什么意思?

速腾地理围栏通过位置触发机制,监控车辆是否跨越预设边界,适用于车队管理或防盗场景,实现动态位置管控。

大众速腾车联网地理围栏有什么用?

该功能实时追踪车辆位置,设置围栏区域后,可接收进出提醒,优化用车管理(如监控驾驶范围),提升安全与效率。

大众地理围栏什么意思?

大众地理围栏是LBS应用,用虚拟边界定义区域,设备进出时触发警报或通知,广泛用于安防、营销等移动服务场景。

一汽大众app地理围栏什么意思?

一汽大众App的地理围栏功能,基于手机位置虚拟划区,车辆进入或离开时推送信息,方便车主远程监控与管理。

gps电子围栏什么意思?

GPS电子围栏通过平台地图设置虚拟范围,设备(如车辆)进出时发送警报,用于资产追踪、安全防护等实时定位管理。