How to get locations of foliage instances?

This didn’t work for me in 4.27

FolliageMeshes was deprecated

Had to do something like this

for (TActorIterator<AInstancedFoliageActor> ActorItr(GetWorld()); ActorItr; ++ActorItr)
	{
		AInstancedFoliageActor* FoliageMesh = *ActorItr;
		auto FoliageComponents = FoliageMesh->GetComponentsByClass(UFoliageInstancedStaticMeshComponent::StaticClass());
		for (auto& Comp : FoliageComponents)
		{
			auto FoliageComponent = Cast<UFoliageInstancedStaticMeshComponent>(Comp);
			if (FoliageComponent != nullptr)
			{
				UStaticMesh* Mesh = FoliageComponent->GetStaticMesh();
				auto InstanceCount = FoliageComponent->GetInstanceCount();

				UE_LOG(LogTemp, Display, TEXT("FoliageComp Mesh:%s Instances:%d"),
					*Mesh->GetName(),
					FoliageComponent->GetInstanceCount());

				for (int i = 0; i < InstanceCount; ++i)
				{
					FTransform InstanceTransform;
					FoliageComponent->GetInstanceTransform(i, OUT InstanceTransform, true);

					UE_LOG(LogTemp, Display, TEXT("%s[%d] %s"),
						*Mesh->GetName(), 
						i,
						*InstanceTransform.ToString()
						);
				}
					
			}
		}

Need to include Foliage module in YourProject.Build.cs

and headers:
#include “Runtime/Foliage/Public/InstancedFoliageActor.h”
#include “Runtime/Foliage/Public/FoliageInstancedStaticMeshComponent.h”
#include “Engine/StaticMesh.h”