arcgisforjs添加glb模型和清除小部件

官网上有相关的案例,但是官网上的是需要用户手动去点击地图才能进行添加(目前我看到的是这种类型)。我的需求是地图一加载就自动添加到地图上,无需用户再次手动点击。直接上代码。

methods: {

    loadGlbModel() {
      loadModules([
        "esri/symbols/PointSymbol3D",
        "esri/symbols/ObjectSymbol3DLayer",
        "esri/widgets/Expand",
        "esri/Graphic",
        "esri/layers/GraphicsLayer",
      ]).then(
        ([
          PointSymbol3D,
          ObjectSymbol3DLayer,
          Expand,
          Graphic,
          GraphicsLayer,
        ]) => {

          // 添加模型
          this.$graphicsLayer = new GraphicsLayer();
          this.$map.add(this.$graphicsLayer);

          const modelSymbol = new PointSymbol3D({
            symbolLayers: [
              new ObjectSymbol3DLayer({
                resource: {
                  href: "xxx.glb",    // 你的glb模型的url
                },
              }),
            ],
          });

          const modelGraphic = new Graphic({
            geometry: {
              type: "point",
              // 指定加载的经纬度和高度
              longitude: 108.959419,
              latitude: 34.219819,
              // 高度可以先设置高一点,以免模型嵌入地下
              z: 450,
              spatialReference: this.$view.spatialReference,
            },
            symbol: modelSymbol,
          });

          this.$graphicsLayer.add(modelGraphic);
          // 移动视角到加载处,以免模型太小看不见
          this.$view.goTo({
            zoom: 20,
            center: [108.959419, 34.219819],
          });
        }
      );
    }
  },

代码中的$xxx都是我防止vue规避监听的作用,具体可以参考我的另外一篇关于cesium的文章(Vue2解决cesium动画卡顿_cesium加载大量entity_XFIRR的博客-CSDN博客)。

要清除小部件,我以legend举例。

this.$view.ui.empty("top-right"); 
// 方式一:清除之后可能显示一个无图例的小部件在右上角

this.$view.ui.remove(this.$heatMapLegend,"bottom-right");  
// 方式二: 清楚后将整个heatMapLegend全部清除,不会留有无图例的小部件。可以根据需求自行选择

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值