单坐标矢量使用过程中可能遇到的问题

9/23/2024

# 拖拽 div,编辑的小提示框有点偏远

image

避免遮挡了实际位置,所以故意偏移的。同时留点空隙方便看拖动的位置;

# DivGraphic div 矢量加载在本地没有样式

样式是另外的文件,需要单独引入下

# FrustumPrimitive 四凌锥怎么实现贴地,像右侧图一样

image

FrustumPrimitive 是 ceisum 默认对象,是不支持。

所以我们才自定义写了 space 插件下的几个对象。

# PlanePrimitive 如何使用 modelMatrix

主要需要通过 modelMatrix 解析为 plane 对应的相关参数(如 plan 参数 Cesium.Plane)再传给 PlanePrimitive

具体来源为gitee 提问 (opens new window)

popup 就是个 html 页面,正常开发其他官方的组件;

也可以将 popup 转成组件,更方便加载和使用,参考示例代码 src\widgets\basic\query-poi\query-popup.vue

转为组件如果需要使用自身项目中的 UI 组件,需要在 vue 页面中单独引入下

# viewShed 可视域分析

# 如何获取到分析区域的相关信息

比如说分析区域的坐标或者面积等

image

目前不支持,仅 webgl 层面的渲染效果。

# 如何排除区域内的其他矢量,如 gltf 小模型

可视域分析是后处理对象,目前无法干预排除不覆盖部分对象。

# 不在视域内的如何进行分析

webgl 分析需要在可视内才行,目前不支持非视域内的分析。非可视内的分析需要另写“离屏渲染”相关分析算法。

# label 文本

# 放大视角,label 文本重叠

目前还没有实现矢量避让功能,可以超过一定高度后不显示;

# 字体怎么弄的清晰点

2 个方式都一起加看看

  1. 对地图 scene 添加参数
export const mapOptions = {
  scene: {
    resolutionScale: 2.0, // 可以提高文字清晰度
  },
};
1
2
3
4
5
  1. 对矢量添加参数

image

# billboard 图标点

# 图标点的附加矢量 point,设置贴地时图标不出现

image

问题现象:这两个贴地参数打开其中一个都会导致图标不显示

解决办法:

估计 cesium 内这个合并一起的 entity 有问题(当前写法是一个 entity)

可根据自身需求选择:

  1. 自行计算贴地高度,赋值给坐标,不设置贴地参数;

  2. 拆开用 2 个 graphic 对象分别控制

# 图标有中空透明部分,无法点击

png 图片重新处理下,中空部分用白色,透明 0.01

# 图标能不能像小模型那样高亮有轮廓色设置

image

目前不支持,边缘高亮需要 highlight 配置个高亮图片(另作一个图片)

# model 小模型

# 小模型缩放时,怎么控制文本一直在头上

像图标点(BillboardEntity)的文本缩放就一直在上面,小模型的文本缩放后就不在模型上面;

model 与 Billboard 的机制不一样,Billboard 是固定的像素图片。

像素或实际的米数,不能共存,建议都按米数来,参考代码

function addDemoGraphic3(graphicLayer) {
  const graphic = new mars3d.graphic.ModelEntity({
    name: "汽车",
    position: [116.349194, 30.864603, 376],
    style: {
      url: "//data.mars3d.cn/gltf/mars/qiche.gltf",
      scale: 0.5,
      // minimumPixelSize: 50,
      silhouette: false,

      label: {
        text: "皖A12345",
        font_size: 18,
        color: "#ffffff",
        addHeight: 25,
        // pixelOffsetY: -50,
        scaleByDistance: new Cesium.NearFarScalar(100, 1.0, 10000, 0.2),
        distanceDisplayCondition: true,
        distanceDisplayCondition_far: 10000,
        distanceDisplayCondition_near: 0,
      },
    },
    attr: { remark: "示例3" },
  });
  graphicLayer.addGraphic(graphic);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

# 小模型手动开启动画

参考示例大量 gltf 模型(Primitive) (opens new window)

image

# ModelPrimitive 编辑时 scaleX 缩放参数无效

编辑时切换到了 ModelEntity;scaleX 缩放参数无法传递给 ModelEntity(因为 ModelEntity 不支持 scaleX)

待后续研究解决方式,目前无法实现。

# 小模型中的附加矢量 distanceDisplayBillboard 修改图标

image

graphic.czmObject.billboard.image = xxxx;
1

# 小模型的构件处理

比如说想控制小模型的其中某个部位隐藏

暂未找到合适接口,用于 gltf 模型的构件处理,建议尝试 3dtiles 模型 + style 样式显示隐藏构件

# 小模型的加载后,如何获取范围?

模型再系统里按点范围确定位置的,你说的范围可能是指包围盒大小包,但也不是准确数字,无法代码自动判断范围。

# 圆形矢量

# circleEntity 加载后二维场景中显示的是椭圆

这是正常的,没有问题,在南北极会更加变形,这是投影坐标系知识。

最后更新: 9/30/2024, 11:46:59 AM