Commit c92f199
committed
test(layers): characterize LayerPickService delegate (stage-6 6.1)
阶段 6.1:为阶段 1.3a LayerPickService(BaseLayerPickService,14 个
delegate 中依赖面最重的集成协调器)补独立特征化 spec
(pick-service.spec.ts 17 cases),此前仅经 tile interaction utils /
PickingService / PixelPickingPass 间接覆盖。以满足窄依赖面的 mock
layer(container + hooks + renderModels + getSource/getOriginalExtent
+ tileLayer + mapService.lngLatToContainer)直连 delegate。
pickRender:tileLayer 存在委托 pickRender 短路(不调自身编码);非 tile
走 beforePickingEncode + renderTileLayerMask + renderModels({ispick}) +
afterPickingEncode 编码序列。pick(layer,target):RasterLayer 走
pickRasterLayer,否则 pickRender + pickFromPickingFBO 透传。
pickRasterLayer:extent 解析(originalExtent[0]/[2] 非零用之否则
getSource().extent)+ lngLatInExtent 分流;isPick=true→readRasterValue+
单次 triggerHoverOnLayer+return true;isPick=false 重定义 type
(mousemove→mouseout 否则 un+type)+ 两次 triggerHoverOnLayer
(unpick + retyped)+ return false;parent 用作 adviceTarget。
readRasterValue 3 case 锁定几何索引计算(pos 归一 + indexX/Y floor +
max(0,indexY-1) 兜底 + 解构默认 maxLng=10/maxLat=-10)。
selectFeature/highlightPickedFeature 解构 [r,g,b] + hooks 调用;
getFeatureById 透传。lngLatInExtent 边界左开右闭锁定(真实纯函数)。
纯测试刀:仅改 __tests__/ + docs/PLAN,不进发布包,零产线改动、
零 changeset。验证:eslint 0 problems、prettier 通过、新 spec 17 passed、
非 GL 回归子集 25 suites/158 passed 与基线一致。1 parent 1f9fe6d commit c92f199
2 files changed
Lines changed: 426 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
115 | | - | |
| 115 | + | |
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
| |||
0 commit comments