参考地址:shp 文件数据入库的几种解决思路 | DistChen
一共4种方式:
oracle提供oracle.spatial.util.SampleShapefileToJGeomFeature
Loading ESRI Shapefiles into Spatial
这是由oracle 提供的 shp 入库方法,入库后的空间数据类型是 SDO_GEOMETRY,而不是ST_GEOMETRY。该方法使用很简单,只需设定好对应的参数即可,可以直接通过命令行的形式使用:
详细的可以查看官方网站
oracle提供的用于操作 oracle spatial 的jar包位于 ORACLE_HOME/md/*,如下:
oracleplugin
这是由geotools提供的专门连接并操作oracle 数据库的方法,使用该 Plugin可以很方便的基于oracle 创建图层、添加要素,但是遗憾的是,也是属于 oracle spatial,不过可以学习了解下,一个简单的连接数据库并基于一个shp图层创建一张空间表的示例如下:
<dependency> <groupId>org.geotools.jdbc</groupId> <artifactId>gt-jdbc-oracle</artifactId> <version>${geotools.version}</version> </dependency>
利用maven配置依赖时,需要指定私服地址,在中央仓库中并没有这些资源,私服地址如下:
<repositories> <repository> <id>osgeo</id> <name>OSGeo Release Repository</name> <url>https://repo.osgeo.org/repository/release/</url> <!-- <snapshots>--> <!-- <enabled>false</enabled>--> <!-- </snapshots>--> <!-- <releases>--> <!-- <enabled>true</enabled>--> <!-- </releases>--> </repository> <repository> <id>osgeo-snapshot</id> <name>OSGeo Snapshot Repository</name> <url>https://repo.osgeo.org/repository/snapshot/</url> <!-- <snapshots>--> <!-- <enabled>true</enabled>--> <!-- </snapshots>--> <!-- <releases>--> <!-- <enabled>false</enabled>--> <!-- </releases>--> </repository> </repositories>
arcsdeplugin
http://docs.geotools.org/latest/userguide/library/data/arcsde.html
https://mvnrepository.com/artifact/org.geotools/gt-arcsde/24.5
<dependency> <groupId>org.geotools</groupId> <artifactId>gt-arcsde</artifactId> <version>24.5</version> </dependency>
Arcgis 工具 arcsde
调用arcsde提供的工具shp2sde(也是偶然想到既然有sdeservice 工具,会不会还有其它工具,一看果然还有好多有用的)。ArcSDE提供了很多工具,可以借助这些工具来完成相关的操作。在ArcCatalog 中带ui的功能,有一些通过命令行是可以完成的。shp2sde 就是用来完成shp入库的,而且效率很高。
关于shp2sde命令,参考如下:http://edndoc.esri.com/arcsde/9.0/admin_cmd_refs/shp2sde.htm,下面是一个示例:
还有一些其他的开源gis工具也可以实现shp入库,比如OGR 等。
OGR库是一个非常流行的处理地理空间矢量数据的开源库。它可以读取丰富的数据格式,允许用户进行几何处理、属性表操作、数据分析,是个非常强大的开源GIS库。目前OGR已集成在GDAL库中,可以说是GIS的本源之一了,有大量的软件用到了这个库。