gdal java shp_GDAL的java环境配置以及将shp转换为json

概述:

前两天,有位同仁再问我一个问题,问题大概是介个样子的:打包shp数据位zip格式并上传,上传完成后再在web上展示出来。这个需求,以前在Arcgis Online上见过,所以还是比较熟悉的,所以我就给他说:先将zip解压,再读取shp数据并将之转换为Geojson返回前台,并在web上展示出来。很庆幸的是,者为同仁很快就实现了shp到Geojson的转换,就问我Arcgis for js 中怎么展示Geojson,我截了个Arcgis for js的API给他他就实现了上述的功能。同时,我想他请教了如何实现的转换,他告诉我说是GDAL实现的,并给了我关键代码,因为代码是C#的,所以,经过周末的折腾,在JAVA上实现了,在此分享给大家。

实现:

想要在java上用GDAL比较费劲,中间的尝试过程在此略过,直接说结果。

首先是jdk,下载的GDAL的位数一定要与JDK的位数相符,我的JDK的位数是32位的,所以下载了32位的GDAL,为方便大家使用,并将此上传到了百度网盘,下载地址为:链接:http://pan.baidu.com/s/1mhrywn2 密码:lsch。将GDAL下载完成后,将所有的dll文件复制到jdk的安装路径“C:\Program Files (x86)\Java\jdk1.7.0_17\jre\bin”下即可。

接着,将JDAL.jar文件添加到你的Java lib引用中去。

最后,代码实现。实现的关键代码如下:

package com.lzugis.gdal;

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:\\data\\china\\capital.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:\\data\\china\\capital.geojson");

System.out.println("转换成功!" );

}

}打印的信息如下:

bb40b92b662aadec1799b278a866c64c.png

67bf2b5be91bc5fdea34bbf2e969490f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值