3

我正在尝试使用 REST API 上传形状文件。这是我得到的错误:没有这样的数据存储:ws1,nete

我已经安装了 1.7.5 版和 restconfig-1.7.5.jar 插件。

这是我所做的: 1) 创建工作区 ws1

curl -u admin:geoserver -v -XPOST -H 'Content-type: text/xml' -d 'ws1'localhost:8080/geoserver/rest/workspaces

2) 检查工作区

curl -XGET -H '接受:文本/xml' localhost:8080/geoserver/rest/workspaces/ws1

回复正常

3)上传shapefile

curl -u admin:geoserver -XPUT -H 'Content-type: application/zip' --data-binary @roads.z​​ip localhost:8080/geoserver/rest/workspaces/ws1/datastores/roads/file.shp

回复:

警告:无法从文件“roads.z​​ip”中读取数据,这会导致 POST 为空。解压文件时出错:打开 zip 时出错

需要帮助吗!!!

4

1 回答 1

3

我今天问自己同样的问题,终于解决了。我正在运行带有 REST 扩展的 Geoserver 2.0.2。

以下 curl 命令正在运行:

curl -u admin:geoserver -v -XPUT -H 'Content-type: application/zip' --data-binary @/home/shape.zip http://localhost:8085/geoserver/rest/workspaces/ws/datastores/test1/file.shp

“.shp”前面的“文件”是任意的,随心所欲。

“test1”是新数据存储的名称。

“/home/shape.zip”是压缩后的 Shapefile 的路径。注意:一个 Shapefile 由多个文件组成!有关介绍,请参阅 wikipedia。Geoserver 的压缩 Shapefie 至少应包含 .shp、.dbf、.shx、.prj。

如果您使用 Java 进行开发,您可能希望使用 Java 客户端通过 REST 配置 Geoserver。GSRCJ是一个非常小的(2 个类,零依赖)客户端,用 Java 1.5+ 编写。它不是一个完整的实现,但具有如何将 Shapefile 上传到 Geoserver 等的工作代码。请参阅此处的代码。

于 2010-10-29T00:18:13.070 回答