研究了好久,利用WFSClient來調用WFS服務進行增刪改查,先上段代碼,其餘後續補全吧。json
//自定義xml的格式來實現ide
Map connectionParameters = Maps.newHashMap();post
//connectionParameters.put("WFSDataStoreFactory:GET_CAPABILITIES_URL",)測試
HTTPClient httpClient =new SimpleHttpClient();ui
httpClient.setConnectTimeout(10);url
httpClient.setTryGzip(true);spa
WFSConfig wfsConfig =new WFSConfig();code
String url =orm
geoServerConfig.getUrl() +"/ows?service=wfs&version=1.0.0&request=GetCapabilities";xml
WFSClient wfsClient =new WFSClient(new URL(url), httpClient, wfsConfig);
TransactionRequest transactionRequest = wfsClient.createTransaction();
//transactionRequest.setOutputFormat("json");
QName typeName =new QName("http://www.xxxx.xxx", "postgis_rd");
transactionRequest.setTypeName(typeName);
Insert insert = transactionRequest.createInsert(typeName);
GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(null);
LineString lineString = geometryFactory
.createLineString(new Coordinate[]{new Coordinate(0, 0), new Coordinate(1, 1)});
SimpleFeatureTypeBuilder typeBuilder =new SimpleFeatureTypeBuilder();
typeBuilder.setName("postgis_rd");
typeBuilder.setNamespaceURI("http://wwww.gis.hezhang.yunlizhihui.com/ylgis");
typeBuilder.setSRS("EPSG:4326");
typeBuilder.setCRS(CRS.decode("EPSG:4326"));
typeBuilder.add("name", String.class);
typeBuilder.add("line", LineString.class, CRS.decode("EPSG:4326"));
SimpleFeatureType simpleFeatureType = typeBuilder.buildFeatureType();
SimpleFeatureBuilder simpleFeatureBuilder =new SimpleFeatureBuilder(simpleFeatureType);
simpleFeatureBuilder.set("name", "測試");
simpleFeatureBuilder.set("line", lineString);
SimpleFeature feature = simpleFeatureBuilder.buildFeature(null);
insert.add(feature);
transactionRequest.add(insert);
TransactionResponse transactionResponse = wfsClient.issueTransaction(transactionRequest);
List fids = transactionResponse.getInsertedFids();