Введение в GDAL
GDAL (Библиотека абстракции геопространственных данных) - это библиотека преобразования растровых данных с открытым исходным кодом в соответствии с лицензионным соглашением о X/MIT. Он использует абстрактные модели данных для выражения поддерживаемых форматов файлов. Он также имеет ряд инструментов командной строки для преобразования и обработки данных.
Официальный веб -сайт GDAL: http://www.gdal.org/, он может поддерживать различные популярные в настоящее время форматы данных карты, включая растровые и векторные карты, для получения подробной информации см. Официальный веб -сайт. Эта библиотека разработана с использованием C/C ++. Это требует самосписки при использовании на Java. Я не буду говорить о конкретном процессе компиляции здесь. Давайте посмотрим на основное содержание этой статьи.
Пример метода Java для чтения и записи ShapeFile с использованием GDAL
Прочитайте файл SHP и преобразуйте его в JSON
Импорт org.gdal.ogr.*; import org.gdal.ogr.driver; импорт org.gdal.gdal.*; // Чтобы поддержать китайские пути, добавьте следующий код gdal.setConfigoption ("gdal_filename_is_utf8", "Да"); // Чтобы сделать поддержку поля таблицы атрибутов китайским, добавьте следующее предложение gdal.setConfigoption ("shape_encoding", ""); String strvectorfile = "d: //test//node.shp"; // Открыть данные файла ds = ogr.open (wrvectorfile, 0); if (ds == null) {System.out.println ("Open File не удалось!"); возвращаться; } System.out.println ("Открыть файл успешно!"); Driver DV = Ogr.getDriverbyName ("Geojson"); if (dv == null) {System.out.println ("Открытый драйвер не удался!"); возвращаться; } System.out.println ("Открытый драйвер успешно!"); dv.copydatasource (ds, "d: //test//node.json"); System.out.println («Преобразование успешно!»); }} Напишите файл SHP
Импорт org.gdal.ogr.*; import org.gdal.gdal.*; класс 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", "нет"); gdal.setConfigoption ("SHAME_ENCODING", "CP936"); String strdrivername = "esri Shapefile"; org.gdal.ogr.driver odriver = ogr.getDriverbyName (strdriverName); if (odriver == null) {System.out.println (драйвер strevectorfile + "недоступен! /n"); возвращаться; } DataSource ODS = ODRIVER.CREATEDATASOURCE (StrecectorFile, NULL); if (ods == null) {System.out.println ("Создать векторный файл [" + wrvectorfile + "] не удастся! /n"); возвращаться; } Layer olayer = ods.createlayer ("testpolygon", null, ogr.wkbpolygon, null); if (olayer == null) {System.out.println ("Создание слоя не удалось! /N"); возвращаться; } // Создать таблицу атрибутов ниже // Сначала создать целочисленный атрибут с названием FieldId ofFieldid = new FieldDefn ("fieldId", Ogr.OftInteger); Olayer.CreateField (Offield); // Создать атрибут символа под названием featureName, с длиной символа 50 FieldEfn ofieldname = new FieldDefn ("FieldName", Ogr.oftString); ofieldname.setWidth (100); Olayer.createField (ofieldname); Infurefn odefn = olayer.getlayerdefn (); // Создать функцию треугольника OfeeUretriangle = новая функция (ODEFN); ofeaturetriangle.setfield (0, 0); ofeaturetriangle.setfield (1, "Треугольник"); Geometry Geomtriangle = Geometry.createFromWKT ("Polygon ((0,20 0,10 15,0 0))"); OfeAtureTiangle.Setgeometry (Geomtriangle); Olayer.CreateFeature (OfeAtureTiangle); // Создать функцию прямоугольника OfeeRurectangle = новая функция (ODEFN); OfeeRurectangle.setfield (0, 1); OfeeRurectAngle.Setfield (1, «прямоугольник»); Geometry GeomRectangle = Geometry.CreateFromWKT («Полигон ((30 0,60 0,60 30,30 30,30 0))") "); OfeeRurectangle.Setgeometry (GeomRectangle); Olayer.CreateFeature (OfeERurecterglangle); // Создать функцию Pentagon функции OfEaturePentagon = новая функция (ODEFN); OfEaturePentagon.setfield (0, 2); OfEaturePentagon.Setfield (1, «Пентагон»); Геометрия geompentagon = geometry.createfromwkt ("Полигон ((70 0,85 0,90 15,80 30,65 15,70 0))"); OfEaturePentagon.Setgeometry (GeomPentagon); Olayer.CreateFeature (OfeeTurePentagon); ods.synctodisk (); System.out.println (" /N Создание набора данных завершено! /N"); }}Получить test.dbf, test.shp, test.shx.
test.dbf выглядит следующим образом:
Откройте форму следующим образом
Суммировать
Вышеуказанное - все содержание этой статьи. Я надеюсь, что содержание этой статьи поможет вашему обучению или работе. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения.