Serbest kütüphaneler kullanarak uzamsal veriler nasıl yeniden oluşturulur?


13

Uzamsal verileri dönüştürmek için ücretsiz kütüphaneleri nasıl kullanabilirim?

Örneğin, C # web uygulamamın kodu içindeki bir Shapefile projeksiyonunu değiştirmek istiyorum. Bunu nasıl yaparım?


Bu gerçekten bir "X listesi" sorusu olduğu için CW'ye dönüştürüldü.
whuber

2
CW atı zaten kapının dışında olduğu için şimdi biraz geç, ama cevap verenler "bunu nasıl yaparım?" Q'nun bir kısmı sadece bir "X listesi" olmazdı.
matt wilkie

Bunu harika cevaplarla harika bir soru yapmaya çalışalım.
underdark

Yanıtlar:


10

DotSpatial.Projections kütüphanesini deneyebilirsiniz .

Web sitesinde "Coğrafi Koordinat Sisteminden Öngörülen Koordinat Sistemine Dönüştürme" örneği listelenmektedir :

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.");
    }
  }
}



2

Kimse proj.4 ve shapelib'den bahsetmediğim için biraz şaşırdım. Her ikisi de C projesi olmasına rağmen, C # bağlamaları yapıldı (ya da sadece p / çağırabilirsiniz).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.