# How to add Billboard with I3S data

**URL:** <https://community.cesium.com/t/how-to-add-billboard-with-i3s-data/32660>\
**Category:** CesiumJS\
**Created:** [June 4, 2024, 8:46am UTC](https://community.cesium.com/t/how-to-add-billboard-with-i3s-data/32660 "2024-06-04T08:46:40Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![vincent](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/vincent/32/14000_2.png) [@vincent](https://community.cesium.com/u/vincent)\
**Post date:** [June 4, 2024, 8:46am UTC](https://community.cesium.com/t/how-to-add-billboard-with-i3s-data/32660/1 "2024-06-04T08:46:40Z")

</div>

I have a URL that return a JSON about I3S data,  
so I could use I3SDataProvider to show some 3D buildings at the view.

Now I want to add icon upon every building.  
I referred the the examples in sandcastle about Billboards and watch the object from I3SDataProvider but got nothing, did I miss something?

the effect I want:

 ![未命名](https://global.discourse-cdn.com/cesium/original/3X/e/e/ee574c602024d6180926608530f462f4f31a254b.jpeg)

my code:

```js
    const modelUrl = "https://...";
    Cesium.Ion.defaultAccessToken = "...";

    const viewer = new Cesium.Viewer("container", {
      terrain: Cesium.Terrain.fromWorldTerrain(),
    });

    try {
      const i3sData = await Cesium.I3SDataProvider.fromUrl(modelUrl);
      viewer.scene.primitives.add(i3sData);

      console.log("i3sData:", i3sData);
      }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
    } catch (error) {
      console.log(
        `There was an error creating the I3S Data Provider: ${error}`
      );
    }

```

---

<div class="post-metadata">

**Author:** ![Gabby\_Getz](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/gabby_getz/32/7838_2.png) [@Gabby\_Getz](https://community.cesium.com/u/Gabby_Getz)\
**Post date:** [June 6, 2024, 3:07pm UTC](https://community.cesium.com/t/how-to-add-billboard-with-i3s-data/32660/2 "2024-06-06T15:07:22Z")

</div>

> [@vincent](#):
>
> I referred the the examples in sandcastle about Billboards and watch the object from I3SDataProvider but got nothing, did I miss something?

Hi there,

Do you have some sample code for what you tried here?

---

<div class="post-metadata">

**Author:** ![vincent](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/vincent/32/14000_2.png) [@vincent](https://community.cesium.com/u/vincent)\
**Post date:** [June 8, 2024, 2:19pm UTC](https://community.cesium.com/t/how-to-add-billboard-with-i3s-data/32660/3 "2024-06-08T14:19:51Z")

</div>

Thanks for your reply 😀  
I think I found the solution for this problem!

After I tried to analyze the JSON’s structure,  
I could get the buildings’s data from the property “nodePage”,  
and use these nodes position to create some billboards or points!

reference: https://github.com/Esri/i3s-spec/blob/master/docs/1.7/nodePage.cmn.md
