我正在提出如上所示的上述算法的更改.
JMS调用其他进程
1A.从发送当前的车辆位置开始.
1B.另一个过程将响应一个JMS消息,其中包含您的车辆位置可见区域中所有“排孔位置”的列表.在客户端保留此列表中的“可见锅孔位置”,以便以下步骤使用.
1C.我们将可视区域定义为车辆的邻近区域,即使使用JMS调用其他过程的(1秒延迟网络延迟),车辆的移动也不应该穿过该区域.
1D.每秒钟后,重复步骤1a和1b,并相对于您的车辆的当前位置替换客户端的锅孔位置列表.
.
车载运动观察员
2A.实施可以接收车辆动作通知的观察者模式.
2B.每次发生事件时,观察员将检查车辆的位置是否与步骤1b中获取的可见孔洞列表中的一个条目相匹配.
2C.如果匹配发现,宾果!你必须停下车.
.
车辆运动
3A.注册step-2a观察员观察车辆的动作
3B.等到你从第1b步到达第一个可见的坑洞列表.
3C.每100毫秒增加X值,开始移动车辆.每次移动时,应通知步骤2a观察者.
.
下图图示:
o - Instance of each pot hole somewhere on map
X - Moving vehical
. - Path followed by vehical
Circle - Visible area of the vehical driver
+---------------------------------------------+
| |
| o o |
| o |
| |
| |
| _.-''''`-._ |
| o,' `. o |
|,' o `. |
| .' . `. |
| | . . | |
| | . | o |
| | X | |
| o \ o / |
| \ / |
| `.,' |
| `-._ _.-' |
| `'''' |
| |
| o |
| o |
| |
| |
| o o |
+---------------------------------------------+