Arcgis api+Java+gdal+webUploaders加载本地上传的shp压缩文件(提供源码)

  1. 序言

最近一直在研究怎么在地图加载用户上传的压缩过的shp文件,arcgis的官网提供来了一个在线的例子(add Shapefiles),但是在线的东西始终是别人的,虽然方便,但是限制太多.
我先是找了GitHub上的shapefile.js(shapefile.js),但是谁想到,arcgis api不支持加载Geojson格式的要素,简单的点线面还好,但是复杂的多面,多线等等都加载不了。所以自己用java写了后台加载。

  1. 配置gdal

java的gdal配置比C#简单多了,本来想用C#的,可死活配不出来,搞得我以前没学过Java的都破天慌的去写java,也不知道哪里来的勇气。已经编译好的gdal 的下载地址:http://www.gisinternals.com/,我用的是最新的gdal301。
第一步:把bin目录下的所有dll放到你的D:\Program Files\Java\jdk1.8.0_131\jre\bin目录下,也就是你的java的安装位置,让java能找到这些dll,还有其他方法,然后在你的项目中导入gdal.jar包,gdalaljni.dll放在C:/system32下。
在这里插入图片描述

  位置不固定,此处提供三种方案
  (1)拷贝到java工程目录下
  (2)拷贝到{JAVA_HOME}\jre\bin目录下
  (3)将bin目录配置到环境变量中

在这里插入图片描述
在这里插入图片描述

  1. 后台

我用neatbeans写的,对新手来说挺好用的,采用的是serverlet+html方式,在写后台的时候遇到了多线程加载dll的问题,我没有解决,要是你上一次的调试没有关闭,再次运行index界面就会包500错误,其实是因为多线程访问同一个dll出错了,自己可以网上找一下资料,平时运行的时候不会出错。还有一些依赖的包,我会都放在源代码里面

1.Select用来选择shp文件
2.toGeoJson用来读取
3.ZipUtils用来解压文件
4.deleteFile用来删除已经加载完成的文件
5.getFile是请求的serverlet,返回Geojson
6.readFIie是用来测试的可以删掉

在这里插入图片描述

在这里插入图片描述
4.

前端部分

主界面和依赖的js包,已经在前端界面描述得很清楚了

前端加载的时候有点小bug,前端需要在后端返回的数据后面加上“]}”才能使用,
还有就是加载geojson的包,采用的坐标系是4326,要用其他坐标系的自己去源码里面改,最大个数1000.
在这里插入图片描述

  1. 结果
    选择文件后开始上传就能得到结果了。
    在这里插入图片描述
    6.

    源代码


    https://download.csdn.net/download/weixin_44265800/11716413
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值