What to build: 甲方那份 yuanlingSHP(cesiumlab model2tiles)经维护者目测判定
「明显错位 + 只是白色立方体,效果非常差」,不采用。按维护者定的替代方向做一版
轻量建模:参照 GIS 数据(路网 / 建成区 / 水系 / 真实轮廓)程序化生成县城体块,
远景基本达标、不要求近景细节、楼房模型可复用;地理配准由构造保证(不再靠猜原点)。
Status: resolved Labels: ready-for-agent
已交付,但维护者目测否决 —— 本条就此关闭,重做见 票 35。
否决理由(维护者 2026-09-18 看渲染图后给出,逐条记下以免重做时再犯):
emitBuilding() 里平屋顶那一片四边形的绕序与法线不匹配,而材质是
doubleSided: false → 顶面被背面剔除,于是"漏顶";坡屋顶那段还先 push 了一个占位四边形再回退,
几何不干净。这是可以确定的技术缺陷,不是口味问题。注意:本条的机器验证(坐标链、GLB 结构、加载三态)都是真的,错在几何质量与地形贴合上 —— 教训是"能加载 + 坐标对"不等于"看起来对",视觉验收必须由维护者做,且生成器要有可调的形态参数。
D:\GIS\GIS\yuanlingSHP 缺根 tileset.json、分块是局部坐标。为看效果曾补过一版
合成根文件(锚定"县城稠密簇 == 目标坐标"),维护者目测错位且只有白方块 → 该合成根文件已删除,
/gis/models 挂载也已移除。教训:靠推测锚点 + 单色方块 = 不可接受。buildings/roads/waterways(城区内 169 个真实轮廓 + 85 条路 + 沅江)、
1:5 万居民地面 output/resa.json(148 个建成区多边形)、本地 DEM(yuanlingDEM)。transform,不存在"猜模型原点"。tools/city-massing/build-town.mjs。meta.json + README + 本票)。tileset.json + town.glb 都 200,瓦片 visited/selected=1)。实现与机器验证完成 → 维护者目测否决(三项缺陷,见 Answer)→ 本条关闭,重做转票 35。
110.39028164, 28.4436787)为原点的 ENU 米制坐标;
glTF 是 Y-up,顶点写 (east, up, -north),由 Cesium 按 (x, -z, y) 转回局部 Z-up。house(9×7.2 m,1–2 层,坡屋顶)/ block(14×10 m,3–5 层,平顶)/
slab(26×11 m,6–8 层,平顶);层数按"离中心距离 + 位置哈希"给,配色从 13 种里按哈希取。terrain-grid.json,94–188 m),
生成时按双线性插值给每栋楼定基准高程(略埋 0.6 m 避免露缝)。D:\GIS\GIS\cityMassing\{town.glb, tileset.json, meta.json}(4.8 MB,单瓦片 13 图元)。tools/city-massing/verify-town.mjs → 全部通过:
meta.json 里可检出。stats.tilesets=1、tilesetErrors=[]、零页面报错;网络里 tileset.json 与
town.glb 都是 200;三个视点(2400 m / 1200 m / 1800 m 侧视)下诊断均为
visited=1, selected=1, contentReady=1(没被视锥剔除、被选中、内容就绪)。C:\Users\ASUS\AppData\Local\Temp\cockpit-city-probe\
(1-overview-2400m-pitch-55.png、2-mid-1200m-pitch-45.png、3-oblique-1800m-pitch-20.png)。tileset 级 geometricError 写成 0 时 Cesium 不请求根瓦片内容 —— 现象是 tileset.json 拉到了、
town.glb 始终不下载,页面上一栋楼都没有。是靠新加的诊断读数(getTilesetDiagnostics():
visited/selected/contentReady/rootContentState)定位的。改成 800 后内容正常加载。
map.tilesets 配上(.env.local 已挂 /gis/city);
不达标 → 调参数(层数分布、沿街间距、配色)或换更强的数据源重做。