1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| public class MergeKml{
private static void cloneElement(List elementPlacemark, Element elementDocument){
for (int i = 0; i < elementPlacemark.size(); i++) {
Element oldElement = (Element) elementPlacemark.get(i);
Element elementPlacemarkClone = oldElement.clone();
elementDocument.addContent(elementPlacemarkClone);
}
}
public static void main(String[] args) throws JDOMException, IOException {
SAXBuilder builder = new SAXBuilder();
Document kml1 = builder.build("kml1.kml");
Document kml2 = builder.build("kml2.kml");
Element racineKml1= kml1.getRootElement();
Element racineKml2= kml2.getRootElement();
Namespace nameSpace = racineKml1.getNamespace();
List elementPlacemark1 = racineKml1.getChild("Document", nameSpace)
.getChildren("Placemark", nameSpace);
List elementPlacemark2 = racineKml2.getChild("Document", nameSpace)
.getChildren("Placemark", nameSpace);
Document kmlFinal = new Document();
Element elementKml = new Element("kml",nameSpace);
kmlFinal.setRootElement(elementKml);
Element elementDocument = new Element("Document",nameSpace);
elementKml.addContent(elementDocument);
Element elementName = new Element("name",nameSpace);
elementDocument.addContent(elementName);
elementName.addContent("Fusion de 2 KML");
Element elementDescription = new Element("description",nameSpace);
elementDocument.addContent(elementDescription);
Calendar cal = Calendar.getInstance();
CDATA cData = new CDATA("Created on "+ cal.getTime());
elementDescription.addContent(cData);
cloneElement(elementPlacemark1, elementDocument);
cloneElement(elementPlacemark2, elementDocument);
new XMLOutputter(Format.getPrettyFormat()).output(kmlFinal, System.out);
}
} |
Partager