Comment puis-je utiliser des bibliothèques gratuites pour transformer des données spatiales?
Par exemple, je souhaite modifier la projection d'un fichier de formes dans le code de mon application Web C #. Comment je fais ça?
Comment puis-je utiliser des bibliothèques gratuites pour transformer des données spatiales?
Par exemple, je souhaite modifier la projection d'un fichier de formes dans le code de mon application Web C #. Comment je fais ça?
Réponses:
Vous pouvez essayer la bibliothèque DotSpatial.Projections .
Le site Web donne un exemple "Conversion d'un système de coordonnées géographiques en un système de coordonnées projetées" :
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.");
}
}
}
Une autre alternative est http://projnet.codeplex.com/
Il y a aussi GDAL / OGR: http://trac.osgeo.org/gdal/wiki/GdalOgrInCsharp La page a l'air assez ancienne, je ne sais pas si les liaisons sont à jour.