停车场是室内空间里容易让人迷路的地方。楼层相似、柱子成排、参照物重复,人在其中很难建立方向感。导航在这里解决的问题很具体:把车停进去,再把人带回车边。
要解决这两件事,地图不能停在「画出通道」的层面,而要落到车位。车位是停车场里的基本单元,也是导航的终点与起点。下面按数据结构、建模、路径、寻车、数据对接与维护的顺序展开。
一、停车场地图与普通室内地图的差别
(一)空间的连续性
普通
室内地图关心房间与区域的划分,停车场关心的是一整片连续空间里的移动。车位、车道、柱子、坡道共同构成一个不断重复的结构。重复带来两个后果:一是画图时的复制量大,二是使用时的辨识难度高。地图必须提供足够的方向线索,否则人在其中只能凭感觉走。
(二)车位是基本单元
车位既是物理单元,也是管理单元。一个车位对应一个编号、一个状态、一个可被导航到的坐标。把车位作为基本单元,后续的导航、寻车、空位统计才有共同的指代对象。缺了这一层,所有功能都只能停在「某层某区域」的粒度上。
(三)方向感弱、参照物少
停车场里少有可辨认的参照物。柱子上的编号、墙面上的分区标识、地面的箭头,是人判断方向的依据。地图要把这些线索表达出来,而不是只画几何轮廓。线索缺失,画面再准确也无法帮人定位自己。
(四)导航的目标是到达
普通室内导航常以「找到某个房间」为目标,停车场导航的目标更具体:到达某个车位。目标具体,路径就要更细。走到某一层还不够,要走到某一条车道,再走到某个车位前。
(五)数据变化频繁
车位状态随时在变,车辆进出频繁。地图上的呈现要能跟上变化,否则使用方看到的空位是过期的。变化频繁也意味着数据链路要稳。链路不稳,画面会时准时不准,使用方很快就会放弃依赖。
(六)使用场景与功能取舍
停车场导航的使用场景分两类:停车与找车。两类场景的起点终点不同,功能侧重也不同。停车场景重在引导入场与找空位,寻车场景重在快速定位与路线回指。
功能取舍要按使用频次决定。用得多的先做扎实,用得少的可以晚做,而不是一次铺满。取舍还要考虑现场条件。没有车位检测设备的停车场,空位功能只能靠推算,展示上要如实标注。
(七)入口与出口的关系
入口与出口常常不在同一处。地图要把两者都标出,否则导航只解决进,不解决出。出入口的位置影响路径起点。同一个目标车位,从不同入口进入,路线差别很大。入口分层时要提示。地面入口与地下入口的楼层关系不同,提示要按实际标高描述。
出口的指引要与缴费点连接。缴完费到出口这一段,往往是很需要明确指引的一段。出入口的高峰差异要考虑。进场高峰与离场高峰方向相反,引导屏的推荐区域也应当不同。出入口变更要及时更新。改道之后地图仍按旧路线引导,问题会持续很久才被发现。
(八)使用者与指引语言
使用者包括临时访客、常来的车主、管理人员。三类人对指引的依赖程度不同。访客需要完整指引,从入口到车位每一步都要说清。常客只需区域与编号。指引语言要能切换。完整模式与简明模式,由使用方自己选择。切换不必复杂。一个开关加上记忆功能,就能覆盖多数需求。
二、车位级地图的数据结构
(一)车位编号与位置
每个车位要有编号,编号在停车场内不重复。编号规则通常由分区、楼层、序号组合而成,规则要在建模前定好。位置要精确到几何中心点与朝向。中心点用于导航终点,朝向用于判断车辆驶入方向与显示角度。编号与位置要一一对应。对应关系错乱,导航会把人带到相邻车位。
(二)车位与区域的关系
车位归属到区域,区域归属到楼层。三层关系构成检索的路径:先按楼层筛,再按区域找,再定位到车位。归属关系要显式存储,不能靠坐标推断。改造之后车位可能跨越原有区域,推断的结果往往出错。区域划分要与现场的标识一致。现场标的是 A 区、B 区,地图里也应当用同样的划分。
(三)车位状态字段
1、状态字段至少包含三种取值:空闲、占用、不可用。不可用用于施工、维修、专用车位等情形。
2、状态之外还需要时间戳。没有时间戳,无法判断这条状态是刚刚更新还是几小时前的残留。
3、状态来源也要记录。不同来源的可信度不同,来源不清时,异常数据无法追溯。
(四)可用性规则
可用性是状态的组合判断。专用车位对普通车辆不可用,限时车位在特定时段不可用,这些规则要写进数据。规则写进数据,展示才能自动,而不是靠人工标注。人工标注的量一大,错漏不可避免。规则还要能临时覆盖。活动占位、临时封闭,需要在不改动基础规则的前提下调整展示。
(五)检索与排序
检索要支持按编号查、按区域查、按状态查。三种方式覆盖了使用中的主要入口。排序要有默认规则。同一区域内的空位,按距离入口的远近排序,比按编号排序更符合使用习惯。排序规则要能配置。不同停车场的习惯不同,固定一套排序往往两头不讨好。
(六)特殊车位的处理
特殊车位包括充电位、无障碍位、装卸位、预留位。类型不同,可用性规则不同。类型要作为字段存储,而不是写在名称里。名称会随现场叫法变化,字段不会。特殊车位的展示要区分。用同一种颜色标注全部车位,使用方无法判断能不能停。规则变更要能快速生效。充电位改为通用位,只需改字段,不必重画。
(七)状态的时间属性
车位状态不是静态值,而是带时间的一段事实。展示要说明这条状态从何时开始有效。状态变化要有历史。回看某个时段的车位占用情况,能支撑运营判断。历史不必永久保留。按周期清理,既控制成本,也减少检索负担。
状态跳变要能识别。短时间内反复变化,可能是设备问题而不是车辆进出。状态与车辆绑定关系要分开存储。车位状态属于空间,车牌属于车辆,混存会让查询变慢。
时间戳要与统一时基对齐。多来源数据时区处理不一致,比较就会出错。
(八)车位与柱子的关系
柱子是停车场的天然参照。车位与柱子的相邻关系,应当记录在数据里。记录之后,寻车提示可以说清柱号。只说编号,人还需要自己找柱子。
柱子编号要稳定。改造中新增柱子,编号要能插入而不必全部重排。柱子与车位的间距也要记录。间距影响开门空间,是选位时的重要参考。
三、编辑器中的车位建模流程
(一)底图与坐标
建模从底图开始。底图可以来自图纸,也可以来自现场测量。两者不一致时,以现场为准,并在记录里注明。坐标要统一。底图坐标系与地图坐标系不同,导入后必须做一次配准,否则车位会整体偏移。配准要留参照点。墙角的柱子、固定的设备基础,都是稳定的参照,比临时标记可靠。
(二)车道与车位的关系
车位沿车道排布,车道是路径的基础。建模时先画车道,再沿车道排布车位,结构才清晰。车道要区分方向。单向通道与双向通道的路径规则不同,混淆会导致导航给出逆行路线。车道宽度要与实际一致。画得过窄,路径判断会认为车辆无法通过;画得过宽,路径会走上不该走的位置。
(三)批量排布
停车场里车位重复度高,批量排布是效率的关键。选定车道,设定车位尺寸与间距,一次生成一排。批量生成之后要逐排核对。转角、坡道、柱子附近的车位往往需要单独处理。批量操作要可撤销。一次生成几十个车位,出错后逐个删除的成本很高。
(四)编号规则
编号规则要在建模前确定。按分区顺序编号,还是按车道顺序编号,直接影响使用方的查找效率。编号要与现场标识对应。现场柱子上的编号是使用方读到的信息,地图里的编号必须能对上。编号还要考虑扩展。新增车位时,编号规则应当能容纳,而不必整体重排。
(五)建模校验
校验包括几何与逻辑两类。几何看车位是否重叠、是否压在柱子上、是否超出边界;逻辑看编号是否重复、归属是否正确、状态字段是否齐全。校验要在保存时执行。等到发布前才检查,返工的范围会扩大到整层。
(六)与现场测量的配合
建模依赖现场测量。图纸可以提供结构,尺寸与柱子位置仍要到现场核对。测量要记录参照。从哪面墙起算、柱子间距多少,写清楚,后续核对才有依据。测量结果要版本化。改造之后重新测量,旧数据保留,才能解释地图为何变化。测量与制图宜由不同的人做。自己测自己画,容易把测量误差当成事实。
(七)图层与图元规范
停车场的图层要分层清楚:结构层、车图层、车道层、标识层、状态层。分层之后,批量操作才有对象。改车道规则只动车道层,不会牵连车位。图元的精度要与用途匹配。导引用车道中线,展示用区域轮廓,两者不必同精度。
图元命名要与编号规则一致。命名混乱,后续脚本处理会频繁失败。图层顺序影响遮挡。状态层放在结构层之上,人才看得见。图层要能按角色控制。运维看到状态层,访客只需要车道层与车位层。
(八)批量生成后的整体一致性
批量生成车位的速度很快,问题也容易被一起复制。生成之后要看整体,而不是只看某几排。整体看三件事:车位与车道的间距是否统一,转角处是否出现无法使用的车位,车位数与现场是否一致。数量对不上的原因常在于改造。现场划线与图纸不同,图纸没有更新。
对不上时以现场为准,并同步更新图纸。否则下一次建模还会按旧数据做。整体核对之后再做局部修改。顺序颠倒,局部改完又要整体重排。
四、路径与导航:从入口到车位
(一)入口到区域的引导
导航的起点在入口。入口到区域这一段,路径相对简单,重点是把人送到正确的区域。这一段要给出楼层信息。多层停车场里,入口所在楼层与目标楼层不同时,需要明确提示先上行或下行。坡道是这一段的关键节点。坡道的位置、方向、限高,都会影响路径的可行性。
(二)区域到车位的引导
进入区域之后,路径变细。要在车道之间转弯,要绕过柱子,要找到具体的车位。这一段对地图精度要求更高。车道画偏一点,提示就会让人提前或滞后转弯。提示要按距离触发。提前太多,人会犹豫;提前太少,人会错过。
(三)路径的可行性
路径不仅要短,还要能走。单向通道、禁行区、限高段、施工区,都要参与路径计算。可行性判断依赖数据完整。数据不全时,算法会给出看似合理但实际走不通的路线。路径结果要能解释。为什么绕行,为什么选择这条车道,界面应当能给出理由。
(四)转向提示
停车场的转向提示要简单明确。左转、右转、直行,配合车道位置,比复杂的图示更容易执行。提示要与现场标识对应。现场有箭头的地方,提示也应当指向同一方向。提示的频率要控制。连续转弯时,提示过于密集反而造成混乱。
(五)导航结束的判定
导航在到达车位前结束。判定依据可以是距离,也可以是区域进入。判定过早,人会停在通道中间;判定过晚,人会开过车位。结束之后应当给出确认提示。让人知道自己已经到了,比让人反复怀疑更有效。
(六)多层与坡道
多层停车场的路径跨越楼层,坡道是关键节点。坡道的位置、坡度、限高都要在地图上体现。跨层路径要给出楼层切换提示。只给目标楼层,人会不知道该在哪一层转弯。坡道单向时,路径要遵守方向。逆行提示一旦出现,使用方对整个系统的信任都会下降。坡道附近的车位要单独核对。这里常常是图纸与现场差异较大的位置。
(七)路径长度与心理距离
路径计算给出的是距离,人感受到的是心理距离。绕来绕去的路线距离短,体验却差。心理距离受转弯次数影响。转弯多,人会觉得自己在绕圈。路径可以按转弯数加权。距离相近时优先选择转弯少的路线。
指引要与路径一致。路径选择转弯少的,提示也要按转弯描述。长距离路径要给节点。一口气给十几个转弯,人记不住。节点可以是区域或柱子编号。有了节点,中途能确认自己没走错。
(八)导航开始前的确认
导航启动前要确认起点。起点判断错误,整条路径都会偏。起点可以由人选择,也可以由系统推断。推断失败时,应当退回手动选择。起点确认要简单。让用户在地图上点一下,比让他描述自己在哪更快。确认环节不宜过多。每多一步,就多一次放弃的可能。
五、反向寻车怎么实现
(一)车牌与车位的绑定
反向寻车的前提是知道车停在哪里。绑定方式包括入场记录、车位摄像头识别、扫码登记。绑定关系要能容错。识别错误、车牌模糊、临时换位,都会让绑定失效。绑定失败要有补救。人工输入车牌后几位,或按时间段筛选,都是可用的补救方式。
(二)查询入口
查询入口要显眼。扶梯口、电梯厅、缴费点,是人容易停留的位置。入口形式包括自助终端、手机页面、语音问询。多种形式并存,覆盖不同使用习惯。入口要给出明确的下一步。查到位置之后,怎么走,比位置本身更重要。
(三)从查询点到车位的路径
这一段路径的起点是查询点,终点是车位。起点可能分布在多个位置,路径要按起点分别计算。路径要经过人可通行的区域。车辆通道不能作为行人路径,反过来也一样。路径要给出行走时间。时间估计能帮人判断是否需要改走其它路线。
(四)找不到车的情况
找不到车是常见情形。原因包括绑定失败、车位变更、区域记错。界面要给出排查路径:按入场时间筛选、按区域筛选、按车牌模糊匹配。排查无果时,应当给出人工协助的方式,而不是让人停在原地反复尝试。
(五)隐私边界
车牌属于个人信息。查询应当限定在本人车辆,或者由管理方授权。展示要避免长期保留完整车牌。部分隐藏、限时清除,是常见的处理方式。查询记录要留痕。谁在什么时间查了什么,记录清楚,滥用才有约束。
(六)与缴费环节的衔接
寻车与缴费常常同时发生。缴费点、查询点、出口的位置关系,影响使用体验。衔接方式是在缴费点设置查询入口。人缴完费就想知道车在哪,此刻给出位置较为自然。入口要能承压。高峰时段查询集中,页面卡顿会让人放弃使用,转而凭记忆找车。查询结果要能带走。路径能转到手机上,人离开终端也能继续按指引走。
(七)现场标识的依赖
寻车路径依赖现场标识。标识缺失的区域,地图提示要更具体。标识要与地图编号同源。两套编号并存,人会对着柱子上的号码怀疑地图。关键位置要有提示牌。扶梯口、电梯厅、区域分界,都是容易犹豫的位置。
提示牌内容要简短。位置编号加方向,比一段说明更容易执行。标识维护要纳入巡检。灯箱不亮、贴纸磨损,都会让指引失效。标识更换要与地图版本同步。换了编号而地图未改,寻车就会失败。
(八)停车与寻车的对称性
停车与寻车是同一段路的两端,结构上对称。停车是入口到车位,寻车是查询点到车位。对称结构可以共用一套路径与提示规则。共用之后,维护工作量明显下降。差异在起点与节奏。停车时人开车,提示要提前;寻车时人步行,提示可以更密。
共用的部分要显式复用。两套规则各写一遍,改动时容易漏掉其中一套。复用也要留出差异空间。强行统一,会让两类场景都用得勉强。
六、空位数据怎么对接
(一)数据来源
空位数据来自车位检测设备、出入口计数、视频识别、人工上报。不同来源的精度与延迟不同。多来源并存时要有优先级。设备级检测通常比计数推算更准,但覆盖不全。来源要在数据里标明。来源不清,异常时无法判断该信谁。
(二)更新频率
更新频率要与使用场景匹配。入口引导屏需要较快更新,手机端的查询可以稍慢。频率过高会带来压力。设备上报、链路传输、画面重绘都要跟着提速,成本上升。频率要与状态变化同步。车位变化的真实节奏决定了合理的更新间隔。
(三)状态与展示
展示要区分「确定空闲」与「可能空闲」。前者来自设备检测,后者来自推算。区分之后,使用方的预期才准确。把推算结果当成确定结果展示,失望会转化为不信任。展示还要给出时间。多久之前的状态,决定了这条信息还有多少参考价值。
(四)空位不准的处理
不准是常态。设备故障、车辆占位不规范、数据延迟,都会让展示与实际不符。处理方式包括标注更新时间、提供反馈入口、按区域给出可信度提示。反馈要能闭环。使用方上报的错误,应当进入核对流程,而不是只留下一条记录。
(五)与引导屏的关系
引导屏展示的是区域级空位数。区域级数据要由车位级汇总而来,口径必须一致。口径不一致时,屏上显示有位置,进去却发现没有,这类落差会迅速消耗信任。引导屏的刷新要与数据源同步。屏上停留过久,显示的仍是旧值。
(六)数据质量的监控
空位数据的质量要监控。上报中断、状态长时间不变、同一车位反复跳变,都是异常信号。监控要能定位到设备。只看到区域异常,运维仍不知道去查哪一台。监控结果要进入日常巡检清单,而不是只留在报表里。监控阈值要按车位类型区分。专用车位长期被占用属于正常,普通车位长期占用则需要核查。
(七)与出入口记录的配合
出入口记录能提供车辆进出时间,是寻车绑定的一个来源。这类记录只有时间与车牌,没有车位。要与车位检测结合,才能确定位置。结合方式靠时间窗匹配。入场时间之后出现的车位占用,可以作为候选。
匹配会有误差。同一时段多车入场,候选会有多个,需要展示候选或人工确认。出入口记录要能实时获取。延迟过大,绑定会滞后,寻车体验随之下降。数据共享要有边界。车牌属于个人信息,取用范围要写进约定。
(八)引导屏的布局与刷新
引导屏的信息要少而明确。区域名称、空位数量、方向箭头,三项足够。刷新节奏要与数据源一致。屏上数字跳变频繁,人会怀疑数据是否可信。屏的位置要放在分流点。人在转弯前需要信息,转弯之后的信息用处不大。屏的故障要有提示。黑屏而不提示,人会以为系统停机,转而凭经验找位。
七、显示与引导的一致性
(一)地图与实际标识
地图上的分区、楼层、编号,要与现场标识一致。不一致时,使用方会怀疑地图本身。一致性要在验收时逐项核对。分区名称、柱子编号、箭头方向,都是核对项。
(二)楼层与区域命名
命名规则要简单。B1、B2 这类叫法在现场通行,地图就沿用,不要另创一套。区域命名要短。屏幕上空间有限,过长的名称会被截断,反而失去辨识作用。命名变更要同步。现场改了标识而地图未改,人会按旧名称找,越找越乱。
(三)颜色与指引
颜色用于区分状态,不用于装饰。空闲、占用、不可用,三种颜色要稳定,不要随时间变化。指引色要与提示一致。路径高亮色与箭头色统一,人才不会在两套颜色之间猜测。颜色要考虑环境。停车场地坪多为深色,浅色线条更易辨认。
(四)多端一致
同一份地图在自助终端、手机、引导屏上呈现。三端的车位状态、路径提示应当一致。一致不等于相同。屏幕尺寸不同,元素取舍可以不同,但关键信息不能缺失。多端一致要靠同一份数据源。各端各自维护,迟早会出现互相矛盾的画面。
(五)视觉层级
停车场画面元素重复,视觉层级要靠样式拉开。车道、车位、柱子、标识,四个层级要有区分。层级不清,画面会变成一片相似的方块,人找不到重点。重点应当跟着任务走。导航状态下突出路径,寻车状态下突出目标车位。层级还要适应屏幕。小屏上删减次要元素,比全部缩到看不清更可用。
(六)颜色语义的稳定
颜色语义要一次定清楚:空闲、占用、不可用、预留,四种状态四种呈现。颜色之外要有形状差异。只靠颜色区分,对色觉差异人群不友好。状态颜色不要与路径颜色冲突。路径高亮用暖色时,状态色就避开同一色系。
颜色在深色地坪上要测试。屏幕上看好的颜色,投到现场可能对比不足。引导屏与手机端的颜色要一致。两端不同,人会以为说的是两件事。颜色调整要谨慎。已经形成习惯的语义,改动会引起短期误读。
八、运营维护
(一)车位变更
车位会变。划线调整、专用车位增设、临时封闭,都会影响地图。变更要有流程。谁提出、谁确认、谁更新、何时生效,写下来才不会漏。变更之后要复测路径。车位挪动之后,原有路径可能穿过新车位。
(二)单向通道与临时封闭
单向与封闭是动态信息。它们既影响导航,也影响引导屏的推荐。这类信息要能快速生效。走完整套建模流程太慢,需要一条快速通道。快速通道也要留记录。临时措施长期未撤,会变成隐性错误。
(三)数据核对
核对是常态工作。车位状态、绑定关系、区域汇总,都需要定期比对。核对要抽样与全量结合。抽样看趋势,全量看异常。核对结果要留档。连续几次核对都发现同类问题,说明链路本身需要调整。
(四)版本发布
地图更新要按版本发布。版本记录说明改了什么,便于回溯。发布要选时机。营业高峰发布,一旦出错影响面很大。发布后要有观察期。观察期内保持回滚能力,问题才能被快速控制。
(五)责任与人员
地图维护需要责任人。车位变更、状态异常、路径问题,都要有人接。责任分工要与现场管理方对齐。地图方改图,管理方改现场,两边不同步就会出错。交接要有清单。清单包括账号、流程、常见问题处理,缺一项接手就会卡住。责任还要覆盖改造期。施工期间的临时封闭与车位调整,往往没有纳入常规流程。
(六)版本回滚
地图版本要能回滚。发布之后发现车位错位,回滚是较快的止损方式。回滚要连数据一起。只回滚图形而状态数据仍在旧结构上,画面会错乱。回滚要有触发条件。什么情况下回滚,谁来决定,提前写清楚。
回滚之后要复盘。原因、影响范围、改进措施,都要记录。版本说明要写给使用方看。技术细节之外,说清对使用的影响更有用。版本不要过密。频繁发布会让使用方难以适应,也会增加出错概率。
(七)反馈的闭环
使用方的反馈是地图改进的来源。反馈入口要放在使用现场,而不是只放在管理后台。反馈要分类。车位不准、路径不通、标识不清,三类问题对应不同的处理方。处理要有回应。反馈石沉大海,第二次就不会有人再提。
反馈要能统计。同一问题反复出现,说明需要从建模方式或流程上解决。闭环时间要短。拖得太久,现场已经变化,处理的意义也随之下降。
九、常见问题
(一)车位画得不准
原因是底图与现场不一致,或批量生成后未逐排核对。修正办法是重新配准并逐排检查。
(二)路径不通
多数是车道画错、单向规则缺失或禁行区未标注。校验应当覆盖连通性检查。
(三)空位显示与实际不符
来源延迟、设备故障、口径不一致,是三类常见原因。排查要从来源与时间戳入手。
(四)寻车查询失败
绑定失败是主要原因。补救入口缺失会让问题放大,人工协助的位置要提前设计。
(五)改造之后未更新
改造流程里没有地图更新节点。把更新节点写进改造流程,比事后补救更省力。
(六)导航提示与现场箭头相反
地图方向与现场标识未对齐。核对时以现场为准,不要以图纸为准。
(七)多端画面不一致
各端数据源不同,或缓存策略不同。统一数据源并约定刷新策略,是解决这类问题的起点。
结语
停车场导航做得好不好,取决于车位这一层的数据是否扎实。车位编号、位置、状态、归属,四项清楚,路径与寻车才有可靠的基础。把建模、路径、寻车、数据对接与维护当成一条链路来做,而不是几个独立功能拼在一起,使用方才会在一次停车与一次找车中,感受到地图确实帮上了忙。
车位画得准、路径算得通、状态跟得上、维护接得住。四件事各自都不算难,难的是它们同时成立,并且在改造之后与高峰时段仍然成立。这需要流程,而不只是工具。