围栏

作者: liangtong | 来源:发表于2019-01-23 15:24 被阅读0次

围栏描述

在设备满足特定场景前提下,当用户手持安装应用的设备进入/离开勘察工作区域时,程序需要给用户进行响应及提醒。

实际情况中,由于工作场景的不同,围栏个数不确定。比如地铁项目、(跨区的)园区建设项目。

针对某个工程,要求程序的提示不能太过频繁。即当用户在项目围栏边界区域连续触发进入/离开工作区域时,不能重复提醒。且需要考虑用户多设备的情况。

  • 进入围栏

    • 程序未启动 -> 打开程序,直接打开项目操作详情页,方便用户操作。
    • 若参与项目的状态处于「工作中」状态下
      • 检查用户针对该项目的最新操作状态,处理异常。
    • 若参与项目的状态处于「空闲中」状态下,给用户提示。用户可选择交互动作包括:
      • 刷新工程操作页面。
      • 进入项目操作页。
  • 离开

    • 若参与项目的状态处于「工作中」状态下,程序在后台进行「签退」操作。

方案

地理围栏借助于 高德地图 配合后台模式来实现。
程序的提醒频次控制借助于 SQLite 数据库缓存来实现。
后续相关操作借助于 观察者 模式实现。

此处重点说明下程序提醒频次控制的实现思路及流转次序。

缓存数据库中主要存储以下几点信息:

  • 标识:用于工程和地理围栏的挂钩。
  • 工作状态:用于判断用户针对该工程的操作。
  • 触发时机:用于频次控制。
  • 其他:用于组织提醒用户内容等。

流转次序如下:

  • 若用户是外业见证人员,则在程序启动时,获取用户所参与的项目的总览信息(特别说明包括外业工作状态)。
  • 构建并监听项目的地理围栏。
  • 触发进入围栏操作时
    • 根据地理围栏标识(移动端自行约定),在本地SQLite数据库中进行碰撞,查找缓存中的工程。
    • 若能找到工程,则进行以下操作。以兼容用户多设备操作的情况。
      • 获取该工程的概况,根据用户对应该工程的操作状态进行响应。
      • 更新缓存数据。
    • 若不能找到工程,则通知前台可进入项目操作页(针对打开程序时,直接进入项目操作页)。
  • 触发离开围栏操作时
    • 等待60秒后执行以下操作,防止边界上因为GPS不准确导致提醒不准确。
    • 根据地理围栏标识,在本地SQLite数据库中查找缓存中的工程。
    • 若能找到工程,则进行以下操作
      • 查看设备是否处于该工程下的其他地理围栏中(针对工程多区域现象)。
      • 如果设备不处于工程的地理围栏中。则在后台进行「签退」操作。
      • 更新缓存数据。

相关文章

  • 围栏

    现在听见雷声,都是打着伞走得飞快。可是小时候的我却可以坐在屋檐下看着闪电,一次次的证实着自然课上的生活知识。 当时...

  • 《围栏》

    阿秀这村姑,家里山地被政府修路,得到100万,可是依旧抠到人所皆知。二叔说:‘’这阿秀不仅节俭,还聪明,我...

  • 围栏

    地下车库入口处需要大转弯才能入库,入口前的一段马路要宽阔些。于是,有些没有车位的业主把车临时停在入口路边。 先是停...

  • 围栏

    我拖着黑色的行李箱在城市里行走,金黄色的路灯下照出长长的与黑暗相连的影子。车马川流不息,灯光在夏夜流转,我...

  • 围栏

    逶迤沿江路, 江岸动人曲线。 路边护栏, 是她美丽的裙摆吗? 江边樱花绽放, 该是裙摆的花絮。 在修防洪堤岸, 路...

  • 围栏

    围栏描述 在设备满足特定场景前提下,当用户手持安装应用的设备进入/离开勘察工作区域时,程序需要给用户进行响应及提醒...

  • 围栏

    大山,是故乡的围栏 栏栅之外 ,河流低过茅屋 两岸的红叶, 借着风 把绿肥晃动成瘦菊 天涯沒有围栏,我却不能 突围...

  • 围栏

    站在山谷仍觉周围峭壁太远便用碎石和树枝搭了一圈围栏 坐在围栏中心任凭思想冲出身体又越过峭壁尽情伸展着直到天际 我始...

  • 围栏

    围栏的那边是青春,围栏的这边是生活。 我住的这里,一墙之隔是一个大学,也是我曾经的母校。 今天和室友溜达的时候路过...

  • 电子围栏

    高压脉冲电子围栏 高压脉冲电子围栏采用国际上最新的周界安防,周界报警概念,以“阻挡为主、报警为辅”。即把入侵者阻挡...

网友评论

      本文标题:围栏

      本文链接:https://www.haomeiwen.com/subject/qiajjqtx.html