在使用geoserver管理器api (http://code.google.com/p/geoserver-manager/wiki/Documentation)编程创建新层时,使用以下代码:
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
谢谢!
发布于 2013-12-11 14:28:41
2种方法:您必须使用层编码器来配置默认层:
GSLayerEncoder layerEncoder = new GSLayerEncoder();
layerEncoder.setEnabled(true);
layerEncoder.setQueryable(true);
layerEncoder.setDefaultStyle("polygon");
boolean published = publisher.publishDBLayer(WORKSPACE, STORENAME, FTENCODER, layerEncoder);您可以在发布之后尝试配置该层:
String layerName = ...;
String newStyleName = ...;
GeoServerRESTPublisher publisher = ...;
GSLayerEncoder le = new GSLayerEncoder();
le.setDefaultStyle(newStyleName);
publisher.configureLayer(le, layerName);干杯,卡洛·坎塞利埃
参考:
https://stackoverflow.com/questions/15573984
复制相似问题