2013-03-22 3 views
2

В то время как программно создать новый слой с Geoserver-менеджер (API http://code.google.com/p/geoserver-manager/wiki/Documentation), используя следующий код:Geoserver менеджер, добавив новый слой

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-менеджер 1.3.0

Спасибо!

ответ

1

2 способа: вы должны использовать кодер слоя для настройки слоя по умолчанию:

 GSLayerEncoder layerEncoder = new GSLayerEncoder(); 
     layerEncoder.setEnabled(true); 
     layerEncoder.setQueryable(true); 
     layerEncoder.setDefaultStyle("polygon"); 

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

вы могли бы попробовать Configure слой после того, как опубликовать:

String layerName = ...; 
    String newStyleName = ...; 
    GeoServerRESTPublisher publisher = ...; 

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

Приветствия, Карло Cancellieri

Ссылка: