Geotools contiene algunos paquetes relacionados con KML: org.geotools.kml y org.geotools.kml.bindings . Supongo que se diseñó para analizar datos KML.
¿Sabes cómo utilizarlo?
Geotools contiene algunos paquetes relacionados con KML: org.geotools.kml y org.geotools.kml.bindings . Supongo que se diseñó para analizar datos KML.
¿Sabes cómo utilizarlo?
La compatibilidad con KML está vinculada a las funciones XML de codificación y análisis sintáctico de la geometría.
La guía del usuario de GeoTools ha sustituido a los enlaces wiki proporcionados por Ian más arriba - con una página clara y agradable dedicada a la manipulación de la geometría y XML:
http://docs.geotools.org/latest/userguide/library/xml/geometry.html
Uno de los epígrafes de esa página está dedicado a KML .
La política del sitio nos pide que incluyamos la respuesta en lugar de limitarnos a proporcionar enlaces. Teniendo esto en cuenta:
Encoder encoder = new Encoder(new KMLConfiguration());
encoder.setIndenting(true);
encoder.encode(featureCollection, KML.kml, outputstream );
O para analizar KML es necesario tener en cuenta la geometría y el estilo, ya que KML incluye ambos. He aquí un ejemplo que recupera una colección de características.
Parser parser = new Parser(new KMLConfiguration());
SimpleFeature f = (SimpleFeature) parser.parse( inputStream );
Collection placemarks = (Collection) f.getAttribute("Feature");
También puedes pedirle un flujo de resultados (en caso de que el archivo sea más grande que la memoria):
StreamingParser parser = new StreamingParser( inputStream, KML.Placemark);
SimpleFeature f = null;
while ((f = (SimpleFeature) parser.parse()) != null) {
FeatureTypeStyle style = (FeatureTypeStyle) f.getAttribute("Style");
Symbolizer[] syms = style.getRules()[0].getSymbolizers();
assertEquals(3, syms.length);
count++;
}
Mucha suerte (y en caso de duda, revise los casos de prueba).
Muchas gracias por el seguimiento. No obstante, he desarrollado mi propio analizador KML, utilizando JAXB ( opencarto.svn.sourceforge.net/viewvc/opencarto/trunk/ )
¿Puede decirme qué dependencia de maven contiene el archivo org.geotools.kml.KMLConfiguration
¿Clase?
Hay un ejemplo de KMLE en http://svn.osgeo.org/geotools/trunk/demo/example/src/main/java/org/geotools/demo/xml/KMLExample.java que muestra los enlaces KML en uso para la escritura. De otras discusiones en la lista de usuarios parece que los enlaces KML funcionan de forma similar a los enlaces GML, así que echa un vistazo a http://docs.codehaus.org/display/GEOTDOC/GML+XML+Soporte para obtener más pistas.
Cuando tengas una solución, no dudes en publicarla en el wiki de GeoTools.
Muchas gracias por tu útil respuesta, pero no he conseguido utilizar los enlaces KML de geotools. He utilizado en su lugar xstream y el enfoque presentado aquí: cse-mjmcl.cse.bris.ac.uk/blog/2007/02/28/1172675719703.html . Es pesado, pero funciona.
I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.