Labels for a GeometryProvider

Topics: Data Access, SharpMap v0.9 / v1.x, WinForms Controls
Mar 11, 2010 at 8:37 PM

 

VectorLayer vlEstaciones = new VectorLayer("Estaciones");
List<SharpMap.Geometries.Geometry> lEstaciones = new System.Collections.Generic.List<SharpMap.Geometries.Geometry>();
foreach (Estaciones est in srvDivisiones.ListarEstaciones().Where(d => d.Longitud1!= null))
{
SharpMap.Geometries.Point p = new SharpMap.Geometries.Point(est.Longitud1.Value, est.Latitud1.Value);
lEstaciones.Add(p);
}
vlEstaciones.DataSource = new SharpMap.Data.Providers.GeometryProvider(lEstaciones);
vlEstaciones.Style.Symbol = Properties.Resources.celeste;
iMapa.Map.Layers.Add(vlEstaciones);
iMapa.Refresh();

 

Hi all,

I'm trying to show some data with linq.

I can show the icons, but how can i add labels?

this is the code:

VectorLayer vlEstaciones = new VectorLayer("Estaciones");

List<SharpMap.Geometries.Geometry> lEstaciones = new System.Collections.Generic.List<SharpMap.Geometries.Geometry>();

foreach (Estaciones est in srvDivisiones.ListarEstaciones().Where(d => d.Longitud1!= null))

{

SharpMap.Geometries.Point p = new SharpMap.Geometries.Point(est.Longitud1.Value, est.Latitud1.Value);

lEstaciones.Add(p);

}

vlEstaciones.DataSource = new SharpMap.Data.Providers.GeometryProvider(lEstaciones);

vlEstaciones.Style.Symbol = Properties.Resources.celeste;

iMapa.Map.Layers.Add(vlEstaciones);

iMapa.Refresh();

 

 

Mar 11, 2010 at 9:17 PM

Ok, this is the solution. Thanks anyway...

 

 

            FeatureDataTable fdt = new FeatureDataTable();
            fdt.Columns.Add("Nombre", typeof(string));
            VectorLayer vlEstaciones = new VectorLayer("Estaciones");
            
            foreach (Estaciones est in srvDivisiones.ListarEstaciones().Where(d => d.Longitud1!= null))
            {
                FeatureDataRow fdr = fdt.NewRow();
                fdr.Geometry = new SharpMap.Geometries.Point(est.Longitud1.Value, est.Latitud1.Value);
                fdr["Nombre"] = est.Nombre;
                fdt.AddRow(fdr);
            }
            vlEstaciones.DataSource = new SharpMap.Data.Providers.GeometryFeatureProvider(fdt);
            vlEstaciones.Style.Symbol = Properties.Resources.celeste;
            //Set up a road label layer
            SharpMap.Layers.LabelLayer llEstaciones = new SharpMap.Layers.LabelLayer("Nombres Estaciones");
            llEstaciones.DataSource = vlEstaciones.DataSource;
            llEstaciones.Enabled = true;
            llEstaciones.LabelColumn = "Nombre";
            
            llEstaciones.Style = new SharpMap.Styles.LabelStyle();
            llEstaciones.Style.ForeColor = Color.DarkBlue;
            llEstaciones.Style.Font = new Font(FontFamily.GenericSansSerif, 12);
            llEstaciones.Style.HorizontalAlignment = SharpMap.Styles.LabelStyle.HorizontalAlignmentEnum.Left;
            llEstaciones.Style.VerticalAlignment = SharpMap.Styles.LabelStyle.VerticalAlignmentEnum.Bottom;
            llEstaciones.Style.Offset = new PointF(3, 3);
            llEstaciones.Style.Halo = new Pen(Color.Snow, 1);
            llEstaciones.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
            
            llEstaciones.SRID = 4326;

            FeatureDataTable fdt = new FeatureDataTable();

            fdt.Columns.Add("Nombre", typeof(string));

 

 

            VectorLayer vlEstaciones = new VectorLayer("Estaciones");

 

            foreach (Estaciones est in srvDivisiones.ListarEstaciones().Where(d => d.Longitud1!= null))

            {

                FeatureDataRow fdr = fdt.NewRow();

                fdr.Geometry = new SharpMap.Geometries.Point(est.Longitud1.Value, est.Latitud1.Value);

                fdr["Nombre"] = est.Nombre;

                fdt.AddRow(fdr);

            }

            vlEstaciones.DataSource = new SharpMap.Data.Providers.GeometryFeatureProvider(fdt);

            vlEstaciones.Style.Symbol = Properties.Resources.celeste;

 

 

            //Set up a road label layer

            SharpMap.Layers.LabelLayer llEstaciones = new SharpMap.Layers.LabelLayer("Nombres Estaciones");

            llEstaciones.DataSource = vlEstaciones.DataSource;

            llEstaciones.Enabled = true;

            llEstaciones.LabelColumn = "Nombre";

 

            llEstaciones.Style = new SharpMap.Styles.LabelStyle();

            llEstaciones.Style.ForeColor = Color.DarkBlue;

            llEstaciones.Style.Font = new Font(FontFamily.GenericSansSerif, 12);

 

            llEstaciones.Style.HorizontalAlignment = SharpMap.Styles.LabelStyle.HorizontalAlignmentEnum.Left;

            llEstaciones.Style.VerticalAlignment = SharpMap.Styles.LabelStyle.VerticalAlignmentEnum.Bottom;

            llEstaciones.Style.Offset = new PointF(3, 3);

            llEstaciones.Style.Halo = new Pen(Color.Snow, 1);

            llEstaciones.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;

 

            llEstaciones.SRID = 4326;