zoukankan      html  css  js  c++  java
  • 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)Javajdk1.7.0_17jrein”下即可。

    接着,将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("转换成功!" );
    	}
    }
    
    打印的信息如下:





  • 相关阅读:
    nagios --rhel6.5
    nginx+tomcat+msm(memcached-session-manager)
    化学实验过程中对眼睛的保护
    实验室化学药品取用规则
    物理变化、化学变化、物理性质、化学性质
    windows 下在图片中隐藏文件
    老子《道德经》第六十八章
    linux 3.0.35 内核下 include/linux/compiler.h 关于__iomem
    boa 服务器进行 cgi 测试时出现 400 Bad Request 【已解决】
    linux 内核 arch 目录下处理器体系结构
  • 原文地址:https://www.cnblogs.com/lzugis/p/6539794.html
Copyright © 2011-2022 走看看