REST上传Shapefile

3
我正在尝试使用REST API上传一个形状文件。这是我得到的错误: No such datastore: 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 'Accept: text/xml' localhost:8080/geoserver/rest/workspaces/ws1
回复是ok。
3)上传shapefile。 curl -u admin:geoserver -XPUT -H 'Content-type: application/zip' --data-binary @roads.zip localhost:8080/geoserver/rest/workspaces/ws1/datastores/roads/file.shp 回复如下: Warning: Couldn't read data from file "roads.zip", this makes an empty POST. Error occured unzipping file:error in opening zip。
请帮忙解决问题!
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

"file"是".shp"前面的任意名称,可以使用你喜欢的名称。

"test1"是新数据存储的名称。

"/home/shape.zip"是一个压缩的Shapefile文件的路径。注意:Shapefile由多个文件组成!请参阅维基百科进行介绍。对于Geoserver而言,一个压缩的Shapefile文件至少应包含.shp,.dbf,.shx,.prj格式的文件。

如果您正在使用Java进行开发,则可能希望使用Java客户端通过REST配置Geoserver。GSRCJ是一个非常小的(2个类、零依赖项)Java 1.5+客户端。它不是完整的实现,但是具有如何将Shapefile上传到Geoserver和其他更多操作的可用代码。在这里查看代码。


我们需要将shp文件压缩成zip格式吗?不能直接上传原始的shapefile文件吗? - Sam007
一个Shapefile由许多单个文件组成,因此ZIP很有用(而且是必需的)来将所有文件放在一起。请参阅维基百科以了解“Shapefile”中包含的许多不同文件的描述http://en.wikipedia.org/wiki/Shapefile。 - alfonx
感谢@alfonx提供的信息,但我想使用这个curl方法直接上传shp文件而不进行压缩,http://docs.geoserver.org/stable/en/user/restconfig/rest-config-examples/rest-config-examples-curl.html#adding-an-existing-shapefile。这可行吗?我正在尝试但它一直给我这个错误,http://gis.stackexchange.com/questions/40601/why-is-the-curl-syntax-unable-to-create-datastore。 - Sam007
1
您链接的文档中提到上传ZIP文件:“以下内容上传了压缩的shapefile roads.zip,并创建了一个名为roads的新数据存储。” 对于仅上传.shp文件,它说:“此示例显示如何添加已经存在于服务器上的shapefile。” 我猜这可能意味着,如果您只发送.shp文件,则无法自动创建数据存储,因为需要更多信息,例如PRJ。您可以尝试在https://lists.sourceforge.net/lists/listinfo/geoserver-users上搜索。 - alfonx
感谢您的回复@alfonx。我有大约88k个shp文件,要使用这种添加shapefile的技术,我将不得不逐个压缩它们。这是唯一的解决方案吗? - Sam007

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接