交代背景
前段工程师给了我 gis 相关的一些文件,想让我解析里面的数据,简单点就是解析 Shapefile 文件,由于地理信息相关的数据都是 GeoJson 的数据格式;也是第一次接触 gis,所以先简单的了解了下这些专用的名词。
Shapefile
一个Shapefile文件最少包括三个文件:
主文件(.shp)、–存储地理要素的几何图形的文件。
索引文件(.shx)、–存储图形要素与属性信息索引的文件。
dBASE表文件(.dbf),–存储要素信息属性的dBase表文件。
除此之外还有可选的文件包括:
空间参考文件(.prj)、
几何体的空间索引文件(.sbn 和 .sbx)、
只读的Shapefiles的几何体的空间索引文件(.fbn 和.fbx)、
列表中活动字段的属性索引(.ain 和 .aih)、
可读写Shapefile文件的地理编码索引(.ixs)、
可读写Shapefile文件的地理编码索引(.mxs)、
dbf文件的属性索引(.atx)、
以XML格式保存元数据(.shp.xml)、
用于描述.dbf文件的代码页,指明其使用的字符编码的描述文件(.cpg)。
Geotools
GeoTools 是英国利兹大学(University of Leeds)的James Macgll 从1996 年开始研发的一个操作和显示地图的开源Java 代码库,[1] 提供了一系列符合规范的操作地理空间数据的方法,例如可以用它来实现一个地理信息系统(GIS)。GeoTools库在开发时执行OGC规范。目前GeoTools的最新版本是 GeoTools 17 Releases。
Geojson
要素组合的数据格式如下:
1 | { "type": "FeatureCollection", |
核心代码
github-demo 传送门