实时即未来,大数据项目车联网之电子围栏业务逻辑分析(18)

举报
Maynor学长 发表于 2022/10/31 12:36:08 2022/10/31
【摘要】 theme: smartblue持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第18天,点击查看活动详情 1. 电子围栏业务逻辑分析 1.1 电子围栏简介l 什么是电子围栏?地理围栏是一个虚拟的空间围栏,可以帮助开发者检测人或物何时进入或离开预定义区域,并支持实时报警功能。适用于追踪观测某对象是否在预期的空间范围内。l 电子围栏分析的意义?n 通过大数据找到某人...

theme: smartblue

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第18天,点击查看活动详情

1. 电子围栏业务逻辑分析

1.1 电子围栏简介

l 什么是电子围栏?

地理围栏是一个虚拟的空间围栏,可以帮助开发者检测人或物何时进入或离开预定义区域,并支持实时报警功能。

适用于追踪观测某对象是否在预期的空间范围内。

l 电子围栏分析的意义?

n 通过大数据找到某人14天内曾经去过的地方是通过电信信号,定位某人手机信号在14天内曾经长时间停留过的地方,同样的道理,通过大数据找车辆,是根据车辆位置数据找到车辆。当设置以北京市天安门为中心,找到半径为10公里内曾经出现过以及现在正出现在此范围的车辆,那么这个半径为10公里,天安门为中心点的区域就组成了一个无形的围栏(电子围栏)

n 对中心点设置了电子围栏的区域进行监控,监控进出围栏的车辆,某个区域的车辆进行监控筛选,符合政府、车企等组织或机构对区域车辆监控的要求

1.2 电子围栏应用场景

地理围栏服务适用于需要针对特定区域,监控用户位置与区域关系的场景中。包括但不限于:

l 签到打卡类场景,在用户打卡操作前,判断用户是否已经在对应的地理围栏区域内;

l 共享单车类场景,当用户骑车离开合法使用区域时,第一时间获知;或当用户关锁支付时,判断用户是否停在了合法区域内;

l 线下门店促销场景,当获取到用户定位在促销门店区域的附近时,向用户发送引导进入店铺的促销信息。

电子围栏应用场景,以北京天安门为中心点,设置半径10公里的范围,得到此中心点范围内的车辆监控,把此次围栏称之为“天安门电子围栏”。监控车辆,包含监控车辆驾驶进入“天安门电子围栏”,车辆行驶出“天安门电子围栏”。

l 选择电子围栏中心点

l 电子围栏中心点

n 具有明确的地理位置信息

n 天安门:[39.908821, 116.397469]

l 半径,以中心点加半径计算出范围

l 计算车辆位置是否在电子围栏范围内

l 车辆是否在电子围栏内的状态

image-20221025201549325

1.3 创建电子围栏

l 获取中心点经纬度:https://developer.amap.com/tools/picker

l 中心点由业务系统页面录入,中心点信息包含:

n 电子围栏名称、电子围栏有效开始时间、电子围栏有效结束时间、中心点详细地址、电子围栏半径、中心点经度、中心点纬度、激活状态、是否置顶

img

参考:

高德地图绘制电子围栏:https://developer.amap.com/demo/javascript-api/example/overlayers/circle-draw-and-edit

经纬度拾取的地址:

https://developer.amap.com/tools/picker

测距地址:

https://developer.amap.com/demo/javascript-api/example/mouse-operate-map/measure-distance

1.4 围栏规则数据结构

l 通过整体中间表数据结构物理模型图,熟悉业务规则

img

l 围栏规则设置由业务系统页面录入数据,电子围栏规则数据存Mysql数据库中,表名:electronic_fence_setting

l 字段:

n 电子围栏名称、中心点地址、半径、经度、维度、有效开始时间、有效结束时间、激活状态、是否置顶

l 建表语句:

CREATE TABLE `electronic_fence_setting` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
  `name` varchar(255) COLLATE utf8mb4_bin NOT NULL COMMENT '电子围栏名称',
  `address` varchar(255) COLLATE utf8mb4_bin NOT NULL COMMENT '中心点地址',
  `radius` float NOT NULL COMMENT '电子围栏半径  单位km',
  `longitude` double NOT NULL COMMENT '中心点经度',
  `latitude` double NOT NULL COMMENT '中心点纬度',
  `start_time` date NOT NULL COMMENT '有效期开始时间',
  `end_time` date NOT NULL COMMENT '有效期结束时间',
  `status` int(11) NOT NULL DEFAULT '0' COMMENT '激活状态  1 激活 0 未激活 2删除',
  `default_num` int(11) DEFAULT NULL COMMENT '1 默认并置顶数据  0非置顶',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=77 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPACT COMMENT='实时监控-电子围栏设置';

l 数据样例:

img

l 存储已存在电子围栏中的车辆信息表:electronic_fence_vins

n 字段:电子围栏id(setting_id)、车架号(vin)

n 建表语句:

CREATE TABLE `electronic_fence_vins` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `setting_id` int(11) DEFAULT NULL,
  `vin` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `Index 3` (`vin`,`setting_id`) USING BTREE,
  KEY `FK_t_zd_electronic_fence_vins_t_zd_electronic_fence_setting` (`setting_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=596 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPACT COMMENT='实时监控-电子围栏车辆信息';

l 数据样例:

img

1.5 电子围栏分析结果数据结构

电子围栏分析结果数据由电子围栏分析任务执行,并写入结果到mysql中的电子围栏分析结果electric_fence表中(也可以存储在mongodb中,由于结果数据量在业务开发时还不大)

l 字段:

n 车架号、进电子围栏时间、出电子围栏时间、位置时间、位置纬度、位置经度、电子围栏ID、电子围栏名称、中心点地址、中心点纬度、中心点经度、电子围栏半径、终端时间、插入数据的时间

l 建表语句:

-- ----------------------------
-- Table structure for electric_fence
-- ----------------------------
DROP TABLE IF EXISTS `electric_fence`;
CREATE TABLE `electric_fence` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
  `vin` varchar(255) NOT NULL COMMENT '车架号',
  `inTime` varchar(25) DEFAULT NULL COMMENT '进电子围栏时间',
  `outTime` varchar(25) DEFAULT NULL COMMENT '出电子围栏时间',
  `gpsTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '位置时间',
  `lat` double NOT NULL COMMENT '位置纬度',
  `lng` double NOT NULL COMMENT '位置经度',
  `eleId` int(11) DEFAULT NULL COMMENT '电子围栏ID',
  `eleName` varchar(255) NOT NULL COMMENT '电子围栏名称',
  `address` varchar(255) NOT NULL COMMENT '中心点地址',
  `latitude` double NOT NULL COMMENT '中心点纬度',
  `longitude` double NOT NULL COMMENT '中心点经度',
  `radius` float NOT NULL COMMENT '电子围栏半径',
  `terminalTime` varchar(255) DEFAULT NULL COMMENT '终端时间',
  `processTime` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '插入数据的时间',
  PRIMARY KEY (`id`),
  KEY `vin` (`vin`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='电子围栏';

l 数据样例:

img

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。