Hello, I use UCesiumGeoJsonDocumentRasterOverlay to create the effect of overlaying points, lines, and polygons. The implementation in C++ code is as follows:
// create overlay Component
UCesiumGeoJsonDocumentRasterOverlay* drapingOverLayComponent = NewObject<UCesiumGeoJsonDocumentRasterOverlay>(
m_pCesiumTerrain3DTileset,
FName("DrapingComponent"),
RF_Transactional);
drapingOverLayComponent->Source = ECesiumGeoJsonDocumentRasterOverlaySource::FromDocument;
drapingOverLayComponent->MaterialLayerKey = TEXT("Draping");
drapingOverLayComponent->MipLevels = 0;
drapingOverLayComponent->SetActive(true);
drapingOverLayComponent->OnComponentCreated();
m_pCesiumTerrain3DTileset->AddInstanceComponent(drapingOverLayComponent);
// create Collection
CesiumVectorData::GeoJsonFeatureCollection Collection;
// Add Polygon
AddPolygonFeatures(*Draping.DrapingData, Collection);
// update document
auto Document = std::make_shared<CesiumVectorData::GeoJsonDocument>(
CesiumVectorData::GeoJsonObject{ std::move(Collection) },
std::vector<CesiumVectorData::VectorDocumentAttribution>());
m_pRasterOverlay->GeoJsonDocument = Document;
if (m_pRasterOverlay->IsActive())
{
m_pRasterOverlay->Refresh();
}
void AddPolygonFeatures(const FGISDrapingData& DrapingData, CesiumVectorData::GeoJsonFeatureCollection& Collection)
{
for (const FGISDrapingPolygon& Polygon : DrapingData.Polygons)
{
CesiumVectorData::GeoJsonPolygon NativePolygon;
NativePolygon.coordinates.emplace_back();
NativePolygon.coordinates.back().reserve(Positions.Num());
for (const FPosition3d& Position : Positions)
{
NativePolygon.coordinates.back().emplace_back(ToNativePosition(Position));
}
NativePolygon.style = ToNativeStyle(Polygon.Style);
Collection.features.emplace_back(MakeFeature(CesiumVectorData::GeoJsonObject{ std::move(NativePolygon) }));
}
}
I have created the same elements multiple times (with consistent color, graphic shape, and addition order).The order I add them every time is: red, yellow, green, blue, and white,but the displayed results are different.
What is the reason, may I ask ? Thank you!
