# Best way to view huge Polygon Shapefile in Cesium

**URL:** <https://community.cesium.com/t/best-way-to-view-huge-polygon-shapefile-in-cesium/12065>\
**Category:** CesiumJS\
**Created:** [January 19, 2021, 10:34pm UTC](https://community.cesium.com/t/best-way-to-view-huge-polygon-shapefile-in-cesium/12065 "2021-01-19T22:34:50Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Joe\_Thunyathep\_S](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/joe_thunyathep_s/32/3458_2.png) [@Joe\_Thunyathep\_S](https://community.cesium.com/u/Joe_Thunyathep_S)\
**Post date:** [January 19, 2021, 10:34pm UTC](https://community.cesium.com/t/best-way-to-view-huge-polygon-shapefile-in-cesium/12065/1 "2021-01-19T22:34:50Z")

</div>

Hello every,

I have a question. I have a huge shapefile \>1GB of polygon data. It is a 2D Polygon with a lot of attributes. What is the best way to visualize this data on the Cesium-based application? (to give the best performance)

- Convert to 3D Tiles (or Vector Tiles)?
- Convert to GeoJSON?
- Convert to KML

Thank you so much in advance!

---

<div class="post-metadata">

**Author:** ![James\_B](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/james_b/32/2424_2.png) [@James\_B](https://community.cesium.com/u/James_B)\
**Post date:** [January 25, 2021, 9:51am UTC](https://community.cesium.com/t/best-way-to-view-huge-polygon-shapefile-in-cesium/12065/2 "2021-01-25T09:51:57Z")

</div>

I’ve used the NPM `shapefile` package to convert shapefile to GeoJSON, then load it with a GeoJsonDataSource, but performance can be iffy with only a few hundred KB of input data. I used the streaming mode in that converter and handed batches of output to Cesium, but I had to implement [this pending PR](https://github.com/CesiumGS/cesium/pull/9276) to make that possible.

When you say “over 1GB of polygon data”, is that one incredibly-detailed polygon, or is this thousands/millions of polygons? If the former, I’d look at some kind of offline processing to (greatly!) reduce the detail before importing. If the latter, a service-based approach like 3D tiles, where you’re only requesting the data you need for the limited area you’re currently viewing, might help.
