using Mapsui.Layers;
using Mapsui.Nts;
namespace OperationControl.Mapas.Rendering
{
///
/// Resultado da construção visual de um MapaDocumento.
///
/// Não contém a fonte de verdade do mapa.
/// As GeometryFeatures existem apenas como representação
/// para o Mapsui.
///
public sealed class MapaRenderResult
{
public Layer Layer { get; }
public IReadOnlyDictionary
FeaturesPorRuaId
{ get; }
public int QuantidadeFeatures =>
FeaturesPorRuaId.Count;
public MapaRenderResult(
Layer layer,
Dictionary featuresPorRuaId)
{
Layer =
layer
?? throw new ArgumentNullException(nameof(layer));
FeaturesPorRuaId =
featuresPorRuaId
?? throw new ArgumentNullException(nameof(featuresPorRuaId));
}
public GeometryFeature? ObterFeature(
string ruaId)
{
if (string.IsNullOrWhiteSpace(ruaId))
return null;
return FeaturesPorRuaId.TryGetValue(
ruaId.Trim(),
out GeometryFeature? feature
)
? feature
: null;
}
}
}