ogr geojson

package geotool;

import org.gdal.gdal.gdal;
import org.gdal.ogr.*;
import org.gdal.osr.SpatialReference;

import java.util.HashMap;
import java.util.Map;

/**
 * 类描述 

* @since 2019/10/8 15:58 */ public class OgrGeoJson { public static void main(String[] args) { //指定文件的名字和路径 String strVectorFile ="E:\\fibercable.geojson"; // 注册所有的驱动 ogr.RegisterAll(); //配置GDAL_DATA路径(gdal根目录下的bin\gdal-data) gdal.SetConfigOption("GDAL_DATA","E:\\software\\release-1900-x64-gdal-2-4-2-mapserver-7-4-0\\bin\\gdal-data"); // 为了支持中文路径,请添加下面这句代码 gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8","YES"); // 为了使属性表字段支持中文,请添加下面这句 gdal.SetConfigOption("SHAPE_ENCODING","CP936"); //读取数据,这里以ESRI的shp文件为例 String strDriverName = "GeoJSON"; //创建一个文件,根据strDriverName扩展名自动判断驱动类型 Driver oDriver =ogr.GetDriverByName(strDriverName); if (oDriver == null) { System.out.println(strDriverName+ " 驱动不可用!\n"); return; } DataSource dataSource = oDriver.Open(strVectorFile); Layer layer = dataSource.GetLayer(0); String layerName = layer.GetName(); System.out.println("图层名称:"+layerName); SpatialReference spatialReference = layer.GetSpatialRef(); System.out.println(spatialReference); System.out.println("空间参考坐标系:"+spatialReference.GetAttrValue("AUTHORITY",0)+spatialReference.GetAttrValue("AUTHORITY",1)); double[] layerExtent = layer.GetExtent(); // System.out.println("图层范围:minx:"+layerExtent[0]+",maxx:"+layerExtent[1]+",miny:"+layerExtent[2]+",maxy:"+layerExtent[3]); FeatureDefn featureDefn = layer.GetLayerDefn(); int fieldCount = featureDefn.GetFieldCount(); Map fieldMap = new HashMap<>(); for(int i=0; i

你可能感兴趣的:(ogr geojson)