GDAL的java环境配置以及将shp转换为json
2016-03-13 19:25
836 查看
概述:
前两天,有位同仁再问我一个问题,问题大概是介个样子的:打包shp数据位zip格式并上传,上传完成后再在web上展示出来。这个需求,以前在Arcgis Online上见过,所以还是比较熟悉的,所以我就给他说:先将zip解压,再读取shp数据并将之转换为Geojson返回前台,并在web上展示出来。很庆幸的是,者为同仁很快就实现了shp到Geojson的转换,就问我Arcgis for js 中怎么展示Geojson,我截了个Arcgis for js的API给他他就实现了上述的功能。同时,我想他请教了如何实现的转换,他告诉我说是GDAL实现的,并给了我关键代码,因为代码是C#的,所以,经过周末的折腾,在J***A上实现了,在此分享给大家。
实现:
想要在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引用中去。
最后,代码实现。实现的关键代码如下:
前两天,有位同仁再问我一个问题,问题大概是介个样子的:打包shp数据位zip格式并上传,上传完成后再在web上展示出来。这个需求,以前在Arcgis Online上见过,所以还是比较熟悉的,所以我就给他说:先将zip解压,再读取shp数据并将之转换为Geojson返回前台,并在web上展示出来。很庆幸的是,者为同仁很快就实现了shp到Geojson的转换,就问我Arcgis for js 中怎么展示Geojson,我截了个Arcgis for js的API给他他就实现了上述的功能。同时,我想他请教了如何实现的转换,他告诉我说是GDAL实现的,并给了我关键代码,因为代码是C#的,所以,经过周末的折腾,在J***A上实现了,在此分享给大家。
实现:
想要在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("转换成功!" ); } }打印的信息如下:
相关文章推荐
- GDAL的java环境配置以及将shp转换为json
- 20145236 冯佳 《Java程序设计》第2周学习总结
- java学习之(一) 基本数据及语法
- leetcode:Candy 【Java】
- 根据两点经纬度计算距离和角度——java实现
- 20145208《Java程序设计》第2周学习总结
- Java并发包中CountDownLatch的工作原理、使用示例
- Struts2中的ModelDriven机制及其运用
- java 二进制I/O
- Java时间类浅析
- struts2标签--form中的theme属性
- 安装ADT和ADK到eclipse
- Struts2中动态方法调用有三种方式
- 《Java程序设计》第2周学习总结
- 20145327 《Java程序设计》第二周学习总结
- java 爬虫使用Bloom Filter 算法实现Visited表
- 滑动RecyclerView时出现异常: java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 6(offset:6).state:30
- Java安装主要步骤及刚刚导入项目时可能出现的问题
- # 20145210 《Java程序设计》第02周学习总结
- 20145215《Java程序设计》第二周学习总结