首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cesiumjs -旋转文本

Cesiumjs -旋转文本
EN

Stack Overflow用户
提问于 2015-07-16 22:03:24
回答 2查看 1K关注 0票数 3

我想添加一个不总是面对镜头的标签。相反,我希望它遵循一条定义的路径。类似于谷歌地图中街道名称的方向(并不总是横向的)。

我可以想到两个可能的实现旋转文本,但没有任何运气。

  1. 这个标签()或标签:有一个我还没有找到的旋转属性。(像这样的) viewer.entities.add({位置: Cesium.Cartesian3.fromDegrees(-75.1641667,39.9522222),标签:{ text:‘text’//旋转: Cesium.Math.toRadians(-45) } });

或者这个

代码语言:javascript
复制
    var labels = scene.primitives.add(new Cesium.LabelCollection());
    var l = labels.add({
        position : Cesium.Cartesian3.fromRadians(longitude, latitude, height),
        text : 'Hello World',
        font : '24px Helvetica'
        //rotation: Cesium.Math.toRadians(-45)
    });
  1. 在photoshop中创建每个标签的图片,并将其作为图像导入,然后旋转图像(或将其用作材料并旋转实体)。如果你有很多标签(比如街道名称),那就非常劳动密集。

或者,cesiumjs可以将文本识别为一个固定位置的2D对象,并在视角发生变化时对其进行适当的倾斜。

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2015-12-31 19:48:45

如果您的文本没有改变,您可以使用一个图像,并通过Cesium.SingleTileImageryProvider加载它。如果您的文本确实发生了更改,您可以使用billboard.image,将HTML设置为它,并按如下方式旋转画布:

代码语言:javascript
复制
   var c = document.getElementById("myCanvas");
   var ctx = c.getContext("2d");

   ctx.font = "20px Georgia";
   ctx.fillText("Hello World!", 10, 50);

   ctx.font = "30px Verdana";
   // Create gradient
   var gradient = ctx.createLinearGradient(0, 0, c.width, 0);
   gradient.addColorStop("0", "magenta");
   gradient.addColorStop("0.5", "blue");
   gradient.addColorStop("1.0", "red");
   // Fill with gradient
   ctx.rotate(20*Math.PI/180);
   ctx.fillStyle = gradient;
   ctx.fillText("Big smile!", 10, 90);
   billboard.image = ctx;
票数 1
EN

Stack Overflow用户

发布于 2020-11-25 08:47:25

“我知道如何旋转标签的唯一方法是像”亨利·阿罗尼用帆布说的那样。

铯已经有了一个叫做: writeTextToCanvas的函数。

打字本中的示例:

代码语言:javascript
复制
viewer.entities.add({
    position: Cartesain3.fromDegrees(34, 32, 0),
    billboard: {
         image: writeTextToCanvas('baruch', {
                font: '30px sans-serif' 
               }), 
          rotation: 45
      } 
    });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31465308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档