geotools操作WFS service

研究了很久,利用WFSClient來調用WFS服務進行增刪改查,先上段代碼,其他後續補全吧。

//自定義xml的格式來實現

Map connectionParameters = Maps.newHashMap();

//connectionParameters.put("WFSDataStoreFactory:GET_CAPABILITIES_URL",)

HTTPClient httpClient =new SimpleHttpClient();

httpClient.setConnectTimeout(10);

httpClient.setTryGzip(true);

WFSConfig wfsConfig =new WFSConfig();

String url =

geoServerConfig.getUrl() +"/ows?service=wfs&version=1.0.0&request=GetCapabilities";

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();

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章