Pengantar Gdal
GDAL (Perpustakaan Abstraksi Data Geospasial) adalah pustaka konversi data ruang raster open source berdasarkan perjanjian lisensi X/MIT. Ini menggunakan model data abstrak untuk mengekspresikan format file yang didukung. Ini juga memiliki serangkaian alat baris perintah untuk konversi dan pemrosesan data.
Situs web resmi GDAL: http://www.gdal.org/, dapat mendukung berbagai format data peta yang saat ini populer, termasuk peta raster dan vektor, untuk detailnya, lihat situs web resmi. Perpustakaan ini dikembangkan menggunakan C/C ++. Ini membutuhkan kompilasi diri saat digunakan dalam Java. Saya tidak akan berbicara tentang proses kompilasi spesifik di sini. Mari kita lihat konten utama artikel ini.
Contoh metode java untuk membaca dan menulis shapefile menggunakan gdal
Baca file SHP dan ubah menjadi JSON
impor org.gdal.ogr.*; impor org.gdal.ogr.driver; impor org.gdal.gdal.*; kelas publik gdalshptest {public static void main (string [] args) {// daftarkan semua driver ogr.registerall (); // Untuk mendukung jalur Cina, silakan tambahkan kode berikut gdal.setConfigOption ("gdal_filename_is_utf8", "ya"); // Untuk membuat Dukungan Lapangan Tabel Atribut Cina, silakan tambahkan kalimat berikut GDal.SetConfigOption ("Shape_encoding", ""); String strvectorFile = "d: //test//node.shp"; // buka file dataSource ds = ogr.open (strvectorfile, 0); if (ds == null) {System.out.println ("File buka gagal!"); kembali; } System.out.println ("Buka file berhasil!"); Driver dv = ogr.getDriverByName ("geojson"); if (dv == null) {System.out.println ("Driver terbuka gagal!"); kembali; } System.out.println ("Buka Driver berhasil!"); dv.copydataSource (DS, "d: //test//node.json"); System.out.println ("Konversi Sukses!"); }} Tulis file SHP
impor org.gdal.ogr.*; impor org.gdal.gdal.*; kelas writeshp2 {public static void main (string [] args) {writeshp2 readshpobj = new writeshp2 (); readshpobj.writevectorfile (); } static void writevectorFile () {string strvectorFile = "d: //test//test.shp"; Ogr.Registerall (); gdal.setConfigOption ("gdal_filename_is_utf8", "no"); gdal.setConfigOption ("shape_encoding", "cp936"); String strdriverName = "esri shapefile"; org.gdal.ogr.driver odriver = ogr.getDriverByName (strdriverName); if (odriver == null) {System.out.println (driver strvectorFile + "tidak tersedia! /n"); kembali; } DataSource ODS = odriver.createdataSource (StrvectorFile, null); if (ods == null) {System.out.println ("Buat file vektor [" + strvectorFile + "] gagal! /n"); kembali; } Layer olayer = ods.createlayer ("testpolygon", null, ogr.wkbpolygon, null); if (olayer == null) {System.out.println ("Lapisan Pembuatan Gagal! /N"); kembali; } // Buat tabel atribut di bawah ini // Pertama buat atribut integer yang disebut fieldid ofieldid = new FieldDefn ("fieldId", ogr.oftinteger); Olayer.createField (OfieldId); // Buat atribut karakter yang disebut featureename, dengan panjang karakter 50 fieldDefn ofieldname = fieldDefn baru ("fieldName", oGr.oftstring); OfieldName.setwidth (100); Olayer.createField (OfieldName); Fitur odefn = olayer.getLayerdefn (); // Buat fitur segitiga fitur OteatureTriagle = fitur baru (ODEFN); outeaturetrile.setfield (0, 0); outeatureTriangle.setfield (1, "segitiga"); Geometry geomtriangle = geometry.createefromwkt ("polygon ((0 0,20 0,10 15,0 0))"); outeaturetriangle.setGeometry (geomtriangle); olayer.createFeature (outeaturetriangle); // Buat fitur Rectangle fitur OteArterectangle = fitur baru (ODEFN); Oteaturerectangle.setfield (0, 1); Oteaturerectangle.setfield (1, "persegi panjang"); Geometri geomrectangle = geometri.createFromwkt ("polygon ((30 0,60 0,60 30,30 30,30 0))"); Oteaturerectangle.setGeometry (Geomrectangle); olayer.createFeature (OteaterureTectangle); // Buat fitur pentagon fitur orteAturePentagon = fitur baru (odefn); outeaturePentagon.setfield (0, 2); outeaturePentagon.setfield (1, "Pentagon"); Geometri Geompentagon = Geometry.createFromwkt ("Polygon ((70 0,85 0,90 15,80 30,65 15,70 0))"); OceaturePentagon.setGeometry (Geompentagon); Olayer.createFeature (outeaturePentagon); ods.synctodisk (); System.out.println (" /n Kreasi Dataset selesai! /N"); }}Dapatkan test.dbf, test.shp, test.shx.
test.dbf adalah sebagai berikut:
Buka bentuknya sebagai berikut
Meringkaskan
Di atas adalah seluruh konten artikel ini. Saya berharap konten artikel ini akan membantu studi atau pekerjaan Anda. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi.