/* * Copyright (C) 2015 by Array Systems Computing Inc. http://www.array.ca * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 3 of the License, or (at your option) * any later version. * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, see http://www.gnu.org/licenses/ */ package org.esa.s1tbx.io.kml; import org.esa.snap.core.datamodel.GeoPos; import java.io.IOException; import java.io.Writer; /** * Simple utility class for writing Google Earth KML files. * * @author Norman Fomferra */ public class KmlWriter { private Writer writer; public KmlWriter(Writer writer, String name, String description) throws IOException { this.writer = writer; writer.write(String.format("" + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<kml xmlns=\"http://www.opengis.net/kml/2.2\"\n" + " xmlns:gx=\"http://www.google.com/kml/ext/2.2\">\n" + "<Document>\n" + " <name>%s</name>\n" + " <description>%s</description>\n", name, description )); } public void writeGroundOverlay(String name, GeoPos ulPos, GeoPos lrPos, String imagePath) throws IOException { writer.write(String.format("" + " <GroundOverlay>\n" + " <name>%s</name>\n" + " <Icon><href>%s</href></Icon>\n" + " <LatLonBox>\n" + " <north>%s</north>\n" + " <south>%s</south>\n" + " <west>%s</west>\n" + " <east>%s</east>\n" + " </LatLonBox>\n" + " </GroundOverlay>\n", name, imagePath, ulPos.lat, lrPos.lat, ulPos.lon, lrPos.lon )); } public void writeGroundOverlayEx(String name, GeoPos[] quadCoords, String imagePath) throws IOException { writer.write(String.format("" + " <GroundOverlay>\n" + " <name>%s</name>\n" + " <Icon><href>%s</href></Icon>\n" + " <gx:LatLonQuad>\n" + " <coordinates>%s,%s %s,%s %s,%s %s,%s</coordinates>\n" + " </gx:LatLonQuad>\n" + " </GroundOverlay>\n", name, imagePath, quadCoords[0].lon, quadCoords[0].lat, quadCoords[1].lon, quadCoords[1].lat, quadCoords[2].lon, quadCoords[2].lat, quadCoords[3].lon, quadCoords[3].lat )); } public void close() throws IOException { writer.write("" + " </Document>\n" + "</kml>\n"); writer.close(); } }