通过java导入shp数据并将数据解析成集合

首先需要引入shp解析使用的jar包,下载需要“外”网环境(你懂得),我这里直接下载使用的本地包(主要是懒,你也可以搜索下:怎么将jar包导入maven仓库中,很简单)

http://43.142.84.135:8009/environmentProtectiong/file/lib.rarhttp://43.142.84.135:8009/environmentProtectiong/file/lib.rar网盘没会员实在太慢了,直接自己连接发你们

下载后直接把lib放到项目目录

 <!--     shp解析--><dependency><groupId>org.geotools</groupId><artifactId>gt-shapefile</artifactId><version>19.2</version><scope>system</scope><systemPath>${project.basedir}/lib/gt-shapefile-19.2.jar</systemPath></dependency><dependency><groupId>org.ejml</groupId><artifactId>ejml-ddense</artifactId><version>0.39</version><scope>system</scope><systemPath>${project.basedir}/lib/ejml-ddense-0.32.jar</systemPath></dependency><dependency><groupId>org.ejml</groupId><artifactId>ejml-core</artifactId><version>0.39</version><scope>system</scope><systemPath>${project.basedir}/lib/ejml-core-0.39.jar</systemPath></dependency><dependency><groupId>org.geotools</groupId><artifactId>gt-opengis</artifactId><version>19.2</version><scope>system</scope><systemPath>${project.basedir}/lib/gt-opengis-19.2.jar</systemPath></dependency><dependency><groupId>org.geotools</groupId><artifactId>gt-data</artifactId><version>19.2</version><scope>system</scope><systemPath>${project.basedir}/lib/gt-data-19.2.jar</systemPath></dependency><dependency><groupId>org.geotools</groupId><artifactId>gt-api</artifactId><version>19.2</version><scope>system</scope><systemPath>${project.basedir}/lib/gt-api-19.2.jar</systemPath></dependency><dependency><groupId>org.geotools</groupId><artifactId>gt-main</artifactId><version>19.2</version><scope>system</scope><systemPath>${project.basedir}/lib/gt-main-19.2.jar</systemPath></dependency><dependency><groupId>org.geotools</groupId><artifactId>gt-metadata</artifactId><version>19.2</version><scope>system</scope><systemPath>${project.basedir}/lib/gt-metadata-19.2.jar</systemPath></dependency><dependency><groupId>org.geotools</groupId><artifactId>gt-referencing</artifactId><version>19.2</version><scope>system</scope><systemPath>${project.basedir}/lib/gt-referencing-19.2.jar</systemPath></dependency><dependency><groupId>org.geotools</groupId><artifactId>gt-geojson</artifactId><version>19.2</version><scope>system</scope><systemPath>${project.basedir}/lib/gt-geojson-19.2.jar</systemPath></dependency><!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.5</version></dependency><dependency><groupId>org.json.simple</groupId><artifactId>json-simple</artifactId><version>1.1</version><scope>system</scope><systemPath>${project.basedir}/lib/json-simple-1.1.jar</systemPath></dependency><dependency><groupId>javax.measure</groupId><artifactId>jsr-275-1.0-beta</artifactId><version>2</version><scope>system</scope><systemPath>${project.basedir}/lib/jsr-275-1.0-beta-2.jar</systemPath></dependency><dependency><groupId>com.vividsolutions</groupId><artifactId>jts</artifactId><version>1.13</version><scope>system</scope><systemPath>${project.basedir}/lib/jts-1.13.jar</systemPath></dependency>

使用本地jar包打包的时候要加

<configuration><includeSystemScope>true</includeSystemScope>
</configuration>

不然打完的包访问不到对应jar包资源

解析util类:

 public Map<String,Object> getShpFileAttributes(File shpFile)  {Map<String,Object> map = new HashMap();JSONArray jsonArray = new JSONArray();List<String> attributeID = new LinkedList();try {FileDataStore store = FileDataStoreFinder.getDataStore(shpFile);// GeoTools读取ShapeFile文件的默认编码为ISO-8859-1。而我们中文操作系统下ShapeFile 文件的默认编码一般为utf-8((ShapefileDataStore) store).setCharset(Charset.forName("utf-8"));SimpleFeatureSource featureSource = store.getFeatureSource();// 提取出属性的 ID 值List<AttributeDescriptor> attrList= featureSource.getSchema().getAttributeDescriptors();for(AttributeDescriptor attr : attrList){String ID = attr.getName().getLocalPart();attributeID.add(ID);}SimpleFeatureCollection featureCollection = featureSource.getFeatures();SimpleFeatureIterator featureIterator = featureCollection.features();while (featureIterator.hasNext()) {SimpleFeature feature = featureIterator.next();JSONObject jsonObject = new JSONObject();List list = feature.getAttributes();for(int k = 0; k < list.size(); k++ ){if (list.get(k)!=null){jsonObject.put(attributeID.get(k), list.get(k).toString());}else{jsonObject.put(attributeID.get(k), null);}}jsonArray.add(jsonObject);jsonObject = null;}} catch (IOException e) {e.printStackTrace();return  null;}map.put("data", jsonArray);map.put("shpName", attributeID);return map;}

虽然他解析的只是后缀为shp的文件但是shp的同级文件必不可少至少要包含四个文件:

文件越全越好,保证这些文件在同一目录下,

java导入shp数据并解析相关推荐

  1. java导入excel数据_java使用POI批量导入excel数据的方法

    一.定义 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 二.所需jar包: 三.简单的一个读取e ...

  2. postgis导入shp数据在geoserver里发布切片

    今天就来说说这段时间自己整理出来的在使用mapbox sdk去调用geoserver发布的矢量切片服务. 1.安装好需要的软件环境,比如postgis.geoserver.打开postgis,点击vi ...

  3. Java 导入Excel数据

    Java处理导入的Excel数据 简介: 其实就是记录一下一个ExcelUtil,以防以后用到还要去找. 项目架构: SpringMVC + Mybatis + Maven + Java1.8 项目实 ...

  4. JAVA导入大量数据的Excel,如何分块读取并避免内存溢出?

    当需要将大量数据导入到Java应用程序中时,经常会遇到内存不足的问题.在这种情况下,将数据分成块并一次读取一个块是一种可行的解决方案.本篇文章将介绍如何使用Java分块读取Excel数据,并导入到数据 ...

  5. Java导入Excel数据

    例如导入的excel所在目录为D:/cs/test.xls,测试数据如下图所示: 1.创建与excel表头对应的xml模版 <?xml version="1.0" encod ...

  6. 导入shp数据到postgis库

    1.安装完postgis之后,打开PostGIS PostGIS Bundle 3 for PostgreSQL x64 12 Shapefile and DBF Loader Exporter 2. ...

  7. java 导入world数据_java读取world文件,把world文件中的内容,原样输出到页面上。...

    POI,处理可以.样式在Java代码中添加就可以.给了一个例子这个是Excel的.package cn.com.my.common; import java.io.File; import java. ...

  8. java导入excel数据到mysql_java的poi技术读取Excel数据到MySQL

    这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中. 你也可以在 : 项目结构: Excel中的测试数据: 数据库结构: 对应的SQL: 1 CREATE TABL ...

  9. java 生成json数据_解析和生成JSON数据

    JSONObject:可以看作是一个json对象,这是系统中有关JSON定义的基本单元,其包含一对儿(Key/Value)数值.它对外部(External: 应用toString()方法输出的数值)调 ...

  10. java读取json数据并解析输出对象

    文章目录 1 源数据 2 方案 2.1 maven 阿里 fastjson 2.1.1 解析JSON对象 2.1.2 解析JSON对象数组 1 源数据 {"code":200,&q ...

最新文章

  1. 产品经理多任务并行处理,如何管理提效?
  2. Blender文档翻译:Operators tutorial(操作教程)
  3. 【Go】sync.RWMutex源码分析
  4. 清华计算机系上热搜!近9成优秀毕业生放弃留学,前50名41人留校深造
  5. 实现动态验证码的思路
  6. 【Es】Elasticsearch 7.x 新的集群协调层
  7. fastdfs中浏览器访问获取不到文件_SpringBoot 2.0 开发案例之整合FastDFS分布式文件系统...
  8. pip install rrdtool
  9. 【基础教程】基于matlab图像融合总结【含Matlab源码 055期】
  10. Mac上安装PL/SQL Developer
  11. SpringCloud 微服务视频教程
  12. CDN回源原理和CDN多级缓存
  13. SAP中销售订单计划行类别与移动类型关系配置分析
  14. CountingSort(计数排序)——C语言实现
  15. js 对象中,可枚举性(enumerable)是什么?
  16. 医院借力泛微:落地高效、合规的数字化内控管理系统
  17. Android 发表说说一般用到的界面布局
  18. 【科普】光谱(光学频谱)分布图及波长
  19. LEA指令和OFFSET指令
  20. 《神经网络与深度学习》-注意力机制与外部记忆

热门文章

  1. VTM1.0代码阅读:xCheckRDCostMerge2Nx2N函数
  2. 43w+条手机电话号码归属地数据库免费下载·附区号邮编
  3. 计算机网络配置vlan实验报告,北京理工大学-计算机网络实践-VLAN配置及VLAN间通信实验报告...
  4. 计算机科学导论内容大纲,《计算机科学导论》大纲
  5. c++ opencv [ INFO:0] global c:\build\master_winpack-build-win64-vc15\***
  6. CSS RESET —— 浏览器样式重置
  7. Hadoop学习路径
  8. 抖音txt表白html,抖音vbs表白代码的技巧分享
  9. IOS 加载自定义字体
  10. CodeProject上的两个简单绘图程序