读取shp文件,并把它转化为json

import org.gdal.ogr.*;
import org.gdal.ogr.Driver;
import org.gdal.gdal.*; public class GdalShpTest {
public static void main(String[] args) {
// 注册所有的驱动
ogr.RegisterAll();
// 为了支持中文路径,请添加下面这句代码
gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8","YES");
// 为了使属性表字段支持中文,请添加下面这句
gdal.SetConfigOption("SHAPE_ENCODING",""); String strVectorFile = "D:\\test\\NODE.shp";
//打开文件
DataSource ds = ogr.Open(strVectorFile,0);
if (ds == null)
{
System.out.println("打开文件失败!" );
return;
}
System.out.println("打开文件成功!" );
Driver dv = ogr.GetDriverByName("GeoJSON");
if (dv == null)
{
System.out.println("打开驱动失败!" );
return;
}
System.out.println("打开驱动成功!" );
dv.CopyDataSource(ds, "D:\\test\\node.json");
System.out.println("转换成功!" );
}
}

写shp文件

import org.gdal.ogr.*;
import org.gdal.gdal.*;
class 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(strVectorFile + " 驱动不可用!\n");
return;
}
DataSource oDS = oDriver.CreateDataSource(strVectorFile, null);
if (oDS == null) {
System.out.println("创建矢量文件【" + strVectorFile + "】失败!\n");
return;
} Layer oLayer = oDS.CreateLayer("TestPolygon", null, ogr.wkbPolygon, null);
if (oLayer == null) {
System.out.println("图层创建失败!\n");
return;
} // 下面创建属性表
// 先创建一个叫FieldID的整型属性
FieldDefn oFieldID = new FieldDefn("FieldID", ogr.OFTInteger);
oLayer.CreateField(oFieldID); // 再创建一个叫FeatureName的字符型属性,字符长度为50
FieldDefn oFieldName = new FieldDefn("FieldName", ogr.OFTString);
oFieldName.SetWidth();
oLayer.CreateField(oFieldName); FeatureDefn oDefn = oLayer.GetLayerDefn(); // 创建三角形要素
Feature oFeatureTriangle = new Feature(oDefn);
oFeatureTriangle.SetField(, );
oFeatureTriangle.SetField(, "三角形");
Geometry geomTriangle = Geometry.CreateFromWkt("POLYGON ((0 0,20 0,10 15,0 0))");
oFeatureTriangle.SetGeometry(geomTriangle);
oLayer.CreateFeature(oFeatureTriangle); // 创建矩形要素
Feature oFeatureRectangle = new Feature(oDefn);
oFeatureRectangle.SetField(, );
oFeatureRectangle.SetField(, "矩形");
Geometry geomRectangle = Geometry.CreateFromWkt("POLYGON ((30 0,60 0,60 30,30 30,30 0))");
oFeatureRectangle.SetGeometry(geomRectangle);
oLayer.CreateFeature(oFeatureRectangle); // 创建五角形要素
Feature oFeaturePentagon = new Feature(oDefn);
oFeaturePentagon.SetField(, );
oFeaturePentagon.SetField(, "五角形");
Geometry geomPentagon = Geometry.CreateFromWkt("POLYGON ((70 0,85 0,90 15,80 30,65 15,70 0))");
oFeaturePentagon.SetGeometry(geomPentagon);
oLayer.CreateFeature(oFeaturePentagon); oDS.SyncToDisk();
System.out.println("\n数据集创建完成!\n");
}
}

得到test.dbf, test.shp, test.shx。

test.dbf如下:

打开形状如下

最新文章

  1. 一些LINQ的使用
  2. 在Excel中制作复合饼图
  3. RainCup_No.1
  4. REST概念和应用 - TODO
  5. ubuntu 12.04 server + OPENACS(TR069)安装配置日记
  6. Python面试必须要看的15个问题
  7. j2ee的13个标准
  8. 开启Ubuntu Linux下VirtualBox访问USB功能
  9. 焦点轮播图——myfocus焦点图库
  10. 关于 vim每次w时都提示 “E509: 无法创建备份文件 (请加 ! 强制执行)”
  11. 异步套接字基础:select函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
  12. python多线程抓取网页信息
  13. 图解musk这个神人
  14. HTTP有关知识
  15. Tornado 判断用户登录状态和操作权限(装饰器)
  16. chrony软件使用说明
  17. Spring Boot快速入门(二):http请求
  18. Linux 学习 (三) 文件搜索命令
  19. 15个HTML元素方法!
  20. Request参数值自动去空格

热门文章

  1. 这两年在QQGame写过的游戏(2012.7.15-2014.8.25)
  2. [Liferay6.2.2]AUI的小坑:input的type属性
  3. IE8+兼容经验小结
  4. 基于FS4412的DS18B20温度采集编程实现(1-时序分析)
  5. mysql缓存、存储引擎
  6. bzoj2500: 幸福的道路(树形dp+单调队列)
  7. Myeclipse使用DB Browser连接数据库错误:OPTION SQL_SELECT_LIMIT=DEFAULT
  8. 怎样解决Myeclipse中运行jsp乱码问题,亲测有效(虽然是个小问题但是为了大家不被网络上的一些乱七八糟的回答坑)不是改什么windows-propories-...............
  9. jQuery命名空间,插件开发
  10. 微博mid和id转换