☰
8 【 entity ,primitive,3D tiles 3者的含义和区别】
2026/10/28 2:01:38 网站建设 项目流程

entity ,primitive,3D tiles 3者的含义和区别

Entity、Primitive、3D Tiles、GeoJSON 等业务图层。
简单理解为:Entity 是业务对象,Primitive 是渲染对象,3D Tiles 是流式加载的大规模三维数据格式。

空间查询的理解

空间查询 = 根据「空间位置 / 范围条件」,筛选出满足几何关系的空间要素(点、线、面、模型)。
不是普通的id=xxx属性查询,是基于几何坐标关系的查询。工程上通常配合 Turf.js 做地理计算
放到你之前万级动态点位场景,典型需求:

  • 在某个多边形范围内,找出里面所有设备点位(框选查询)
  • 查询相机视野范围内有哪些点位(视锥查询)
  • 查询距离某个中心点 1km 半径内的所有点位(圆形缓冲区查询)
  • 查询和某个围栏相交、包含的要素

示例 (booleanPointInPolygon)

import*asturffrom'@turf/turf';// 多边形顶点 [lon, lat]constpolygon=turf.polygon([[[118.7,32.0],[118.8,32.0],[118.8,32.1],[118.7,32.1],[118.7,32.0],]]);// 待判断的点constpoint=turf.point([118.75,32.05]);constisInside=turf.booleanPointInPolygon(point,polygon);console.log(isInside);// true

常见空间关系:包含、相交、距离邻近、在视锥内、碰撞。
区分:属性查询(查字段)、空间查询(查几何关系),大屏孪生项目经常两者组合使用。

简历话术参考:基于 Cesium 实现空间范围查询(多边形框选、缓冲区邻近查询、视锥体查询),支撑圈选设备、区域统计、告警筛选业务;海量点位下搭配 WebWorker + 空间索引(KDTree / 网格索引)降低查询耗时,避免主线程卡顿。

框选查询 : 用户在地图上绘制一个矩形或多边形,查询其中的点位: (pointsWithinPolygon)

// 1. 监听鼠标绘制,收集顶点坐标 [lon, lat]constdrawPolygon=[];// 用户绘制的顶点// 2. 绘制完成后构建 GeoJSON 多边形constsearchRegion=turf.polygon([drawPolygon]);// 3. 将所有点位转成 FeatureCollectionconstpoints=turf.featureCollection(allDevices.map((d)=>turf.point([d.lon,d.lat])));// 4. 求交constresult=turf.pointsWithinPolygon(points,searchRegion);// 5. 高亮结果result.features.forEach((f)=>{constid=f.properties?.id;highlightEntity(id);});

LOD (Level of Detail,细节层次) = 根据物体离相机远近,切换不同精细程度的模型 / 要素,远了用简单版本、近了用精细版本,平衡渲染性能和视觉效果。

3D Tiles入口文件 tileset.json,真正几何数据在content.uri指向的二进制瓦片:

  • b3dm:批量模型(倾斜摄影、建筑)
  • pnts:海量点云(点云数据)
  • i3dm:实例化模型(大量相同设备、路灯)
  • cmpt:复合瓦片,打包多个子瓦片

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询