Geotools kullanarak GML yazmak istiyorum. Maalesef, bir GML Yazarı ile ilgili dokümanları bulamıyorum (2006'daki doküman dışında: http://docs.codehaus.org/display/GEOTOOLS/WFS+++GML+DataStore ).
Beni belgelere / örneklere yönlendirir misiniz?
Geotools kullanarak GML yazmak istiyorum. Maalesef, bir GML Yazarı ile ilgili dokümanları bulamıyorum (2006'daki doküman dışında: http://docs.codehaus.org/display/GEOTOOLS/WFS+++GML+DataStore ).
Beni belgelere / örneklere yönlendirir misiniz?
Yanıtlar:
Kod örnekleri güncel değil böylece geotools belgeleri (wiki dışında) farklı bir teknolojiye geçirmeye çalışacağız.
Güncelleme bu şimdi yapıldı (bir şeyler topladım, böylece tüm geometri örnekleri bir araya geldi):
İşte o sayfadan tam bir örnek:
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();
4 farklı GML ayrıştırma teknolojisinin nasıl kullanılacağına dair ek örnekler, kaynak koduyla birlikte verilen test durumlarıdır.
İki GTXML teknolojisi temel olarak SAX ayrıştırıcısının en iyi bölümünün, her bir öğeyi geldiği gibi ayrıştırmak için hangi öğenin (bağlama olarak adlandırılır) kullanacağını (öğeyi şema).
Testlerin nasıl yapıldığını görmek için http://svn.osgeo.org/geotools/trunk/modules/library/xml/src/test/java/org/geotools/GMLTest.java adresine de bakabilirsiniz . Anahtar bölüm şöyledir:
GML encode2 = new GML(Version.GML2);
encode2.setBaseURL(baseURL);
encode2.setNamespace("location", "location.xsd");
encode2.encode(out2, collection);
out.close();
Koleksiyon bir özelliktirKoleksiyon.
Deneyin:
//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"));
Belgeler: