通过REST在特定工作区中添加新的Coveragestore


9

因此,看起来很简单,但我似乎无法使其正常工作!我正在尝试使用linux上的curl通过REST API将栅格数据文件(GeoTIFF)添加到geoserver。REST API 可以正常工作,因为我使用它创建了一个新的工作区:

curl -u admin:geoserver -v -XPOST -H 'Content-type: text/xml' \
 -d '<workspace><name>restProba</name></workspace>' \
 http://localhost:8080/geoserver/rest/workspaces

如Geoserver的admin ui所示,它是正确创建的,但是当我尝试通过执行将coveragestore添加到该工作区时

curl -u admin:geoserver -v -XPOST -H 'Content-type: text/xml' -d
'<coverageStore><name>int_dec</name><enabled>true</enabled>
<type>GeoTIFF</type> <url>$home/int_dec.tif</url></coverageStore>'     
"http://localhost:8080/geoserver/rest/workspaces/restProba/coveragestores?configure=all"

即使已正确加载,它也会直接进入默认工作空间,这不是我想要的工作空间。是否有任何方法定义我想要的工作空间?我认为只要在指向restProba的工作区URI的URL中提及它就足够了,但似乎忽略了它。

谢谢你的帮助 :-)

pd:与geoserver的新手,我已经尝试过搜索,但是要么我没有使用正确的搜索条件,我就傻了,或者对于任何人来说我都太简单了,我甚至愚蠢地要求它:p

Answers:


5

也许您可以在创建工作区之后尝试以下操作:

curl -u admin:geoserver -v -XPOST -H 'Content-Type: application/xml' \
     -d '<coverageStore><name>int_dec</name><workspace>restProba</workspace>  
         <enabled>true</enabled></coverageStore>' \
         http://localhost:8080/geoserver/rest/workspaces/restProba/coveragestores

它应该int_decrestProba工作空间中创建一个coveragestore ::

然后,您可以引用GeoTIFF文件:

curl -u admin:geoserver -v -XPUT -H 'Content-type: text/plain' \
     -d 'file:/$home/int_dec.tif' \
      http://localhost:8080/geoserver/rest/workspaces/restProba/coveragestores/int_dec/external.geotiff?configure=first\&coverageName=int_dec

我认为您的问题不见了 '

您的要求是:

curl -u admin:geoserver -v -XPOST -H 'Content-type: text/xml' -d
<coverageStore><name>int_dec</name><enabled>true</enabled>
<type>GeoTIFF</type> <url>$home/int_dec.tif</url></coverageStore>'     
"http://localhost:8080/geoserver/rest/workspaces/restProba/coveragestores?configure=all"

应该是:

curl -u admin:geoserver -v -XPOST -H 'Content-type: text/xml' -d
'<coverageStore><name>int_dec</name><enabled>true</enabled>
<type>GeoTIFF</type> <url>$home/int_dec.tif</url></coverageStore>'     
"http://localhost:8080/geoserver/rest/workspaces/restProba/coveragestores?configure=all"


检查并没有,我正确地做了请求。很好,我将纠正这个问题:)(我感到宽慰的是,不是那样的,我会被羞辱!)
Mikel G. Gainza 2012年

1
至少您的问题将得到解决;-)更新了我的答案。我希望它现在可以工作。
2012年

1

要一步添加一个GeoTIFF存储和同名图层,您可以执行以下操作:

$ curl -v -u admin:geoserver -XPUT -H "Content-type: text/plain"
       -d "file:///path_to_directory/int_dec.tif"
       http://localhost:8080/geoserver/rest/workspaces/restProba/coveragestores/int_dec/external.geotiff

有关更多详细信息,请参见“ REST配置示例:添加现有的shapefile”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.