Tôi muốn viết GML bằng Geotools. Thật không may, tôi không thể tìm thấy tài liệu về Trình viết GML (ngoại trừ tài liệu này từ năm 2006: http://docs.codehaus.org/display/GEOTOOLS/WFS+++GML+DataStore ).
Bạn có thể chỉ cho tôi tài liệu / ví dụ?
Tôi muốn viết GML bằng Geotools. Thật không may, tôi không thể tìm thấy tài liệu về Trình viết GML (ngoại trừ tài liệu này từ năm 2006: http://docs.codehaus.org/display/GEOTOOLS/WFS+++GML+DataStore ).
Bạn có thể chỉ cho tôi tài liệu / ví dụ?
Câu trả lời:
Tôi sẽ cố gắng di chuyển tài liệu geotools sang một công nghệ khác (trừ wiki) để các ví dụ mã không bị lỗi thời.
Cập nhật điều này đã được thực hiện (Tôi đã thu thập mọi thứ để tất cả các ví dụ hình học được kết hợp với nhau):
Đây là một ví dụ đầy đủ từ trang đó:
SimpleFeatureType TYPE = DataUtilities.createType("location", "geom:Point,name:String");
File locationFile = new File("location.xsd");
locationFile = locationFile.getCanonicalFile();
locationFile.createNewFile();
URL locationURL = locationFile.toURI().toURL();
URL baseURL = locationFile.getParentFile().toURI().toURL();
FileOutputStream xsd = new FileOutputStream(locationFile);
GML encode = new GML(Version.GML2);
encode.setBaseURL(baseURL);
encode.setNamespace("location", locationURL.toExternalForm());
encode.encode(xsd, TYPE);
xsd.close();
SimpleFeatureCollection collection = FeatureCollections.newCollection("internal");
WKTReader2 wkt = new WKTReader2();
collection.add(SimpleFeatureBuilder.build(TYPE, new Object[] { wkt.read("POINT (1 2)"),"name1" }, null));
collection.add(SimpleFeatureBuilder.build(TYPE, new Object[] { wkt.read("POINT (4 4)"),"name2" }, null));
ByteArrayOutputStream xml = new ByteArrayOutputStream();
GML encode2 = new GML(Version.GML2);
encode2.setBaseURL(baseURL);
encode2.setNamespace("location", "location.xsd");
encode2.encode(out2, collection);
xml.close();
String gml = xml.toString();
Các ví dụ bổ sung về cách sử dụng 4 công nghệ phân tích cú pháp GML khác nhau là các trường hợp thử nghiệm được bao gồm trong mã nguồn.
Hai công nghệ GTXML về cơ bản là sự kết hợp của phần tốt nhất của trình phân tích cú pháp SAX với khả năng tìm ra đoạn mã nào (được gọi là liên kết) để sử dụng để phân tích từng phần tử khi nó xuất hiện (dựa trên việc tìm kiếm phần tử trong lược đồ).
Bạn cũng có thể xem http://svn.osgeo.org/geotools/trunk/modules/l Library / xml / src / test / java / org / geotools / GMLTest.java để xem các bài kiểm tra thực hiện như thế nào. Phần quan trọng dường như là:
GML encode2 = new GML(Version.GML2);
encode2.setBaseURL(baseURL);
encode2.setNamespace("location", "location.xsd");
encode2.encode(out2, collection);
out.close();
Trong đó bộ sưu tập là một tính năng.
Thử:
//create the encoder with the gml 2.0 configuration
org.geotools.xml.Configuration configuration = new org.geotools.gml2.GMLConfiguration();
org.geotools.xml.Encoder encoder = new org.geotools.xml.Encoder( configuration );
//output stream to serialize to
OutputStream xml = ...
//encode
encoder.encode( featureCollection, new QName( "http://www.geotools.org/test", "featureType1"));
Tài liệu: