使用REST在GeoServer中创建图层


16

作为此问题的可能解决方案的一部分,我想通过REST在GeoServer中创建一个层,该层提供SQL语句和用户ID。

阅读我想我会创建一个要素类型并发布它?我需要在REST中完成所有这些操作。有人有任何代码示例吗?


看起来无法通过rest接口添加图层,您最终解决了吗?我收到错误消息:HTTP状态
405-

Answers:


41

您可以使用GeoServer REST API进行许多操作,这些操作没有专门记录,也没有代码示例。这是解决这些问题的策略。

首先,从文档中示例开始。确保您熟悉如何使用带有XML或JSON的HTTP POST创建简单的新层或工作区。

然后,通过GeoServer UI,手动创建没有文档(在这种情况下为要素类型)所需的对象。

最后,手动浏览到GeoServer REST索引(http://your-server/resthttp://your-server/geoserver/rest)。浏览索引,直到找到刚创建的要素类型。将“ .xml”或“ .json”添加到此资源的URL,您将看到其XML或JSON表示形式。

这种表示形式是您通过POST来通过API创建要素类型所需要的。表示形式的URL是POST所需的URL(例如,http://your-server/geoserver/rest/..../myFeatureTypeName.json)。

您可以使用此策略找出如何以编程方式在GeoServer中创建或配置任何资源。


2
谢谢!简单的答案,又省了我两个小时的嘲笑
Ragi Yaser Burhum 2012年

4
此外,可以跳过很多参数,GeoServer会找出它们(就像在UI中一样)。例如。边界框
rcoup 2012年

1
哇-这是我所见过的最好的描述。
Kieveli

3
使用GeoServer 2.10.2,我发现我需要发布到featuretypes商店的端点,例如geoserver/rest/workspaces/<workspacename>/datastores/<storename>/featuretypes/
Stephen Lead

清晰的工作流程描述,包括相关链接。支持!:)
tony gil

10

我知道这是一个古老的问题,但是以防万一其他人像我一样感到困惑。在重要的是,你不能从创建图层的http://的GeoServer / REST /层端点。

如果要添加矢量层,可以通过要素类型资源来完成:

http://docs.geoserver.org/stable/zh-CN/user/rest/api/featuretypes.html

POST到:

/workspaces/<ws>/datastores/<ds>/featuretypes

您要在其中放置要素类型的工作空间在哪里,要使用的数据源将创建一个新的矢量要素类型,即图层。

如果您想知道可以发布什么,@ Rohan是正确的,最简单的方法是查询现有功能类型,即通过IE浏览器获取http GET

/workspaces/<ws>/datastores/<ds>/featuretypes/<ft>.json 

它将返回现有的要素类型为json。




0

要添加图层,应定义数据存储和要素类型。假设它们已经定义了样式(如http://boundlessgeo.com/2012/10/adding-layers-to-geoserver-using-the-rest-api/中的指南中所述,以添加PUT层请求必须通过以下地址发送到geoserver:

http://geoserver.host/geoserver/rest/layers/NEW_LAYER_NAME

具有如下数据内容:

<layer>
  <name>NEW_LAYER_NAME</name>
  <type>VECTOR</type>
  <defaultStyle>
    <name>myStyle</name>
  </defaultStyle>
  <resource class="featureType">
    <name>myFeature</name>
  </resource>
</layer>

该博客讨论了在现有图层上添加样式的问题,这是有道理的,因为这正是PUT设计的目的。您不能以这种方式创建新图层。这是docs:docs.geoserver.org/stable/en/user/rest/api/layers.html,将PUT 放置到rest / layers将返回405。将PUT 放置到/ rest / layers / <existing_layer>将修改特定的图层,而不创建新的图层。
lostintranslation
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.