首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Geoserver管理器,添加了一个新层

Geoserver管理器,添加了一个新层
EN

Stack Overflow用户
提问于 2013-03-22 15:24:08
回答 1查看 2.3K关注 0票数 3

在使用geoserver管理器api (http://code.google.com/p/geoserver-manager/wiki/Documentation)编程创建新层时,使用以下代码:

代码语言:javascript
复制
GeoServerRESTPublisher publisher = new GeoServerRESTPublisher(RESTURL, RESTUSER, RESTPW);

GSFeatureTypeEncoder featureTypeEncoder = new GSFeatureTypeEncoder();
featureTypeEncoder.setSRS("EPSG:41001");
featureTypeEncoder.setName("view1");
featureTypeEncoder.setNativeBoundingBox(10,10,100,100, "EPSG:41001");

GSLayerEncoder layerEncoder = new GSLayerEncoder();
layerEncoder.setEnabled(true);

boolean ok = publisher.publishDBLayer(WORKSPACE, "user1", featureTypeEncoder, layerEncoder);

新层被成功地创建,但是它是错误的类型(点而不是线)。是否有一种方法可以在创建该层之前或之后更改此层类型(行)?

版本: Geoserver 2.3.0 Postgres 1.14 Geoserver-manager 1.3.0

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2013-12-11 14:28:41

2种方法:您必须使用层编码器来配置默认层:

代码语言:javascript
复制
        GSLayerEncoder layerEncoder = new GSLayerEncoder();
        layerEncoder.setEnabled(true);
        layerEncoder.setQueryable(true);
        layerEncoder.setDefaultStyle("polygon");

        boolean published = publisher.publishDBLayer(WORKSPACE, STORENAME, FTENCODER, layerEncoder);

您可以在发布之后尝试配置该层:

代码语言:javascript
复制
    String layerName = ...;
    String newStyleName = ...;
    GeoServerRESTPublisher publisher = ...;

    GSLayerEncoder le = new GSLayerEncoder();
    le.setDefaultStyle(newStyleName);
    publisher.configureLayer(le, layerName);

干杯,卡洛·坎塞利埃

参考:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15573984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档