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:47]
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. \\ 
-[[http://​www.easygisdotnet.com/​]]+  * 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.1257191277.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)