¿Cómo puedo usar bibliotecas gratuitas para transformar datos espaciales?
Por ejemplo, quiero cambiar la proyección de un Shapefile dentro del código de mi aplicación web C #. ¿Cómo puedo hacer eso?
¿Cómo puedo usar bibliotecas gratuitas para transformar datos espaciales?
Por ejemplo, quiero cambiar la proyección de un Shapefile dentro del código de mi aplicación web C #. ¿Cómo puedo hacer eso?
Respuestas:
Puede probar la biblioteca DotSpatial.Projections .
El sitio web enumera un ejemplo "Conversión de un sistema de coordenadas geográficas a un sistema de coordenadas proyectadas" :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DotSpatial.Projections;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//Sets up a array to contain the x and y coordinates
double[] xy = new double[2];
xy[0] = 0;
xy[1] = 0;
//An array for the z coordinate
double[] z = new double[1];
z[0] = 1;
//Defines the starting coordiante system
ProjectionInfo pStart = KnownCoordinateSystems.Geographic.World.WGS1984;
//Defines the ending coordiante system
ProjectionInfo pEnd = KnownCoordinateSystems.Projected.NorthAmerica.USAContiguousLambertConformalConic;
//Calls the reproject function that will transform the input location to the output locaiton
Reproject.ReprojectPoints(xy, z, pStart, pEnd, 0, 1);
Interaction.MsgBox("The points have been reporjected.");
}
}
}
Otra alternativa es http://projnet.codeplex.com/
También hay GDAL / OGR: http://trac.osgeo.org/gdal/wiki/GdalOgrInCsharp La página parece bastante antigua, no estoy seguro de si los enlaces están actualizados.