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

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
fw:othersnet:easygis [2009/11/02 19:52]
alfred
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 con .NET. \\  Es una librería bastante sencilla para la creación de aplicaciones GIS con .NET. \\ 
-Su página es: [[http://​www.easygisdotnet.com/​]]. +  * Su página es: [[http://​www.easygisdotnet.com/​]]. 
-Aquí +  * Podemos encontrar ejemplos en: [[http://​www.easygisdotnet.com/​api/​]] 
 + 
 + 
 + 
 ===== Creación de shapes ===== ===== 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 ===== ===== Notas =====
 ==== Elementos ==== ==== Elementos ====
   * {{fw:​othersnet:​egis_dt_2_2.zip|Ensamblados}}   * {{fw:​othersnet:​egis_dt_2_2.zip|Ensamblados}}
   * {{fw:​othersnet:​egis_api.zip|API}}   * {{fw:​othersnet:​egis_api.zip|API}}
fw/othersnet/easygis.1257191525.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)