Herramientas de usuario

Herramientas del sitio


fw:othersnet:easygis

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
fw:othersnet:easygis [2009/11/02 19:47]
alfred creado
fw:othersnet:easygis [2020/05/09 09:25] (actual)
Línea 1: Línea 1:
 ====== EasyGIS ====== ====== EasyGIS ======
-Es una librería bastante sencilla para la creación de aplicaciones GIS.+Es una librería bastante sencilla para la creación de aplicaciones GIS con .NET. \\  
 +  * Su página es: [[http://​www.easygisdotnet.com/​]]. 
 +  * Podemos encontrar ejemplos en: [[http://​www.easygisdotnet.com/​api/​]]
  
 +
 +
 +
 +===== Creación de shapes =====
 +Para la creación de shapefiles hemos de agregar como referencia la librería ''​EGIS.ShapeFileLib.dll''​. Mediante esta tendremos acceso a la estructura ''​EGIS.ShapeFileLib.DbfFieldDesc''​ la cual nos servirá para indicar\configurar los campos de información que existirán por cada registro de la shape. Para ello crearemos un array de ''​DbfFieldDesc''​ en el que especificamos cada campo:
 +<code csharp>
 +DbfFieldDesc[] d = new DbfFieldDesc[4];​
 +
 +d[0].FieldLength = 5;
 +d[0].FieldName = "​ID_TRAJECTE";​
 +d[0].FieldType = DbfFieldType.Number;​
 +
 +d[1].FieldLength = 3;
 +d[1].FieldName = "​CODPUB_T";​
 +d[1].FieldType = DbfFieldType.Character;​
 +
 +d[2].FieldLength = 25;
 +d[2].FieldName = "​D_TRAJECTE";​
 +d[2].FieldType = DbfFieldType.Character;​
 +
 +d[3].FieldLength = 5;
 +d[3].FieldName = "​ID_LINIA";​
 +d[3].FieldType = DbfFieldType.Number;​
 +</​code>​
 +Luego crearemos un objeto ''​ShapeFileWriter''​ mediante el método ''​ShapeFileWriter.CreateWritter'',​ al que le pasamos los siguientes argumentos:
 +  - La ruta donde crearemos la shape.
 +  - El nombre del fichero shape.
 +  - El tipo (dentro de la enumeración ''​EGIS.ShapeFileLib.ShapeType'',​ que puede ser ''​Point'',​ ''​MultiPoint'',​ ''​Poligon'',​ ''​PolyLine''​...)
 +  - El array de ''​DbfFieldDesc''​ que define los campos.
 +<code csharp>
 +ShapeFileWriter sfw = ShapeFileWriter.CreateWriter("​c:​\\LiniesExportadesSAE\\",​ "​Line",​ ShapeType.PolyLine,​ d);
 +</​code>​
 +Luego, por cada elemento\registro que queramos agregar a la shapefile llamaremos al método ''​AddRecord''​ del ''​ShapeFileWriter''​. Como en nuestro caso creamos una linia tendremos que ir agregando los puntos que la forman mediante un array de ''​PointF'',​ luego crearemos un array de strings que contendrá los valores de cada campo definidos en el array de ''​DbfFieldDesc''​.
 +<code csharp>
 +PointF[] ps = new PointF[numSubVials];​
 +foreach (int i=0; i<​numSubVials;​ i++)
 +    ps[i] = new PointF(float.Parse(SubVials[i].x),​ float.Parse(SubVials[i].y));​
 +
 +string[] values = new string[4];
 +values[0] = t.id;
 +values[1] = fixString(t.cod_pub);​
 +values[2] = fixString(t.denominacio);​
 +values[3] = l.id;
 +
 +sfw.AddRecord(ps,​ ps.Length, values);
 +</​code>​
 +
 +Y luego, finalizaremos el writer:
 +<code csharp>
 +sfw.Close();​
 +</​code>​
 +===== Lectura de Shapes =====
 +==== Lectura de la forma ====
 +<code csharp>
 +string file = "​c:​\\Export_Output.shp";​
 +ShapeFile sf = new ShapeFile(file);​
 +ShapeFileEnumerator sfEnum = sf.GetShapeFileEnumerator();​
 +while (sfEnum.MoveNext())
 +{
 +    PointF[] points = sfEnum.Current[0];​
 +    int a = points.Length;​
 +}
 +sf.Close();
 +</​code>​
 +==== Lectura de los datos ====
 +
 +===== Notas =====
 +==== Elementos ====
 +  * {{fw:​othersnet:​egis_dt_2_2.zip|Ensamblados}}
 +  * {{fw:​othersnet:​egis_api.zip|API}}
fw/othersnet/easygis.1257191226.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)