RegionsKML.java
- package gov.usgs.earthquake.geoserve;
- import java.util.Date;
- import gov.usgs.earthquake.qdm.Point;
- import gov.usgs.earthquake.qdm.Region;
- import gov.usgs.earthquake.qdm.Regions;
- import gov.usgs.util.XmlUtils;
- /**
- * Custom formatting for gov.usgs.earthquake.qdm.Regions.
- */
- public class RegionsKML {
- /**
- * Output ANSS Authoritative Regions in KML format.
- * @param regions ANSS Authoritative regions
- * @return string of ANSS regions in KML format
- */
- public String formatKML(final Regions regions) {
- StringBuffer kml = new StringBuffer(String.join("\n",
- "<?xml version=\"1.0\" encoding=\"UTF-8\"?>",
- "<kml xmlns=\"http://www.opengis.net/kml/2.2\">",
- "<Document id=\"regions_xml\">",
- " <name>ANSS Authoritative Regions</name>",
- " <description>"
- + XmlUtils.formatDate(new Date())
- + "</description>",
- " <open>1</open>",
- " <Style id=\"RegionStyle\">",
- " <LabelStyle>",
- " <color>00000000</color>",
- " <scale>0.000000</scale>",
- " </LabelStyle>",
- " <LineStyle>",
- " <color>ff0000ff</color>",
- " <width>2.000000</width>",
- " </LineStyle>",
- " <PolyStyle>",
- " <color>00ffffff</color>",
- " <outline>1</outline>",
- " </PolyStyle>",
- " </Style>",
- ""
- ));
- for (final Region region : regions.regions) {
- kml.append("\n<Placemark id=\"region_").append(region.regionid).append("\">\n");
- kml.append("<name>").append(region.regionid).append("</name>\n");
- kml.append("<styleUrl>#RegionStyle</styleUrl>\n");
- kml.append("<MultiGeometry><Polygon><outerBoundaryIs><LinearRing><coordinates>\n");
- for (final Point point : region.points) {
- kml.append(" ").append(point.x).append(",").append(point.y).append("\n");
- }
- kml.append("</coordinates></LinearRing></outerBoundaryIs></Polygon></MultiGeometry>\n");
- kml.append("</Placemark>\n");
- }
- kml.append(String.join("\n",
- "",
- "</Document>",
- "</kml>",
- ""
- ));
- return kml.toString();
- }
- /**
- * Download ANSS Authoritative Regions,
- * and print to console in Regions KML format.
- * @param args Console arguments
- * @throws Exception if error occurs
- */
- public static void main(final String[] args) throws Exception {
- Regions regions = ANSSRegionsFactory.getFactory().getRegions();
- String kml = new RegionsKML().formatKML(regions);
- System.out.println(kml);
- }
- }