Bagaimana cara memproyeksi ulang data spasial menggunakan perpustakaan gratis?


13

Bagaimana saya bisa menggunakan perpustakaan gratis untuk mengubah data spasial?

Misalnya, saya ingin mengubah proyeksi Shapefile di dalam kode aplikasi web C # saya. Bagaimana aku melakukan itu?


Dikonversi ke CW karena ini benar-benar pertanyaan "daftar X".
whuber

2
sedikit terlambat sekarang karena kuda CW sudah keluar gerbang, tetapi jika penjawab lebih memperhatikan "bagaimana saya melakukan itu?" bagian dari Q bukan hanya "daftar X".
matt wilkie

Mari kita coba buat ini pertanyaan yang bagus dengan jawaban yang bagus.
underdark

Jawaban:


10

Anda dapat mencoba perpustakaan DotSpatial.Projections .

Situs web mencantumkan contoh "Konversi dari Sistem Koordinat Geografis ke Sistem Koordinat yang Diproyeksikan" :

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

Saya sedikit terkejut tidak ada yang menyebutkan proj.4 dan shapelib. Meskipun keduanya adalah proyek C, binding C # telah dibuat (atau Anda bisa meminta mereka).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.