/* * Copyright (C) 2014 Alec Dhuse * * 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 co.foldingmap.testFileFormats; import co.foldingmap.map.vector.Coordinate; import co.foldingmap.map.vector.LatLonAltBox; import co.foldingmap.map.vector.MapIcon; import co.foldingmap.map.vector.NetworkLayer; import co.foldingmap.map.vector.LinearRing; import co.foldingmap.map.vector.Region; import co.foldingmap.map.vector.InnerBoundary; import co.foldingmap.map.vector.MapPoint; import co.foldingmap.map.vector.LevelOfDetail; import co.foldingmap.map.vector.Polygon; import co.foldingmap.map.vector.MultiGeometry; import co.foldingmap.map.vector.LatLonBox; import co.foldingmap.map.vector.LineString; import co.foldingmap.map.vector.CoordinateList; import co.foldingmap.map.raster.ImageOverlay; import co.foldingmap.map.themes.IconStyle; import co.foldingmap.map.themes.LabelStyle; import co.foldingmap.map.themes.LineStyle; import co.foldingmap.map.themes.PolygonStyle; import co.foldingmap.testMapObjects.TestRoadLineString; import co.foldingmap.xml.XMLTag; import java.awt.Color; import java.awt.Font; import java.util.HashMap; import org.junit.Ignore; /** * * @author Alec */ @Ignore public class KmlTestData { public static XMLTag getCoordinateTag() { XMLTag coordinatesTag; coordinatesTag = new XMLTag("coordinates", "-122.68031,45.528698,0 -122.68124,45.528683 -122.681305,45.52868 -122.68133,45.528675,0 -122.68142,45.52867,0 -122.68225,45.528656,0 -122.682335,45.528656,0 -122.68236,45.528656,0 -122.68242,45.528656,0 -122.68326,45.52864,0 -122.68335,45.52864,0, -122.68344,45.528637,0, -122.68427,45.528625,0 -122.684364,45.52862,0 -122.684456,45.52862,0 -122.685394,45.528606,0"); return coordinatesTag; } public static HashMap<String, String> getExtendedDataObject() { HashMap<String, String> hashMap; hashMap = new HashMap<String, String>(); hashMap.put("holeNumber", "1"); hashMap.put("holeYardage", "234"); hashMap.put("holePar", "4"); return hashMap; } public static XMLTag getExtendedDataTag() { XMLTag dataTag1, dataTag2, dataTag3, returnTag; dataTag1 = new XMLTag("Data name=\"holeNumber\"", new XMLTag("value", "1")); dataTag2 = new XMLTag("Data name=\"holeYardage\"", new XMLTag("value", "234")); dataTag3 = new XMLTag("Data name=\"holePar\"", new XMLTag("value", "4")); returnTag = new XMLTag("ExtendedData", dataTag1); returnTag.addSubtag(dataTag2); returnTag.addSubtag(dataTag3); return returnTag; } public static ImageOverlay getGroundOverlayObject() { LatLonBox bounds = new LatLonBox(37.83234f, 37.832122f, -122.373033f, -122.373033f); MapIcon mapIcon = new MapIcon("", "http://www.google.com/intl/en/images/logo.gif"); ImageOverlay testOverlay = new ImageOverlay("GroundOverlay.kml", mapIcon, bounds); mapIcon.setRefreshInterval(86400); mapIcon.setRefreshMode(MapIcon.ON_INTERVAL); return testOverlay; } public static XMLTag getGroundOverlayTag() { XMLTag gOverlay = new XMLTag("north", new XMLTag("name", "GroundOverlay.kml")); XMLTag icon = new XMLTag("Icon", new XMLTag("href", "http://www.google.com/intl/en/images/logo.gif")); XMLTag north = new XMLTag("north", "37.83234"); XMLTag south = new XMLTag("south", "37.832122"); XMLTag east = new XMLTag("east", "-122.373033"); XMLTag west = new XMLTag("west", "-122.373033"); XMLTag rotation = new XMLTag("rotation", "45"); XMLTag latLonBox = new XMLTag("LatLonBox", north); latLonBox.addSubtag(south); latLonBox.addSubtag(east); latLonBox.addSubtag(west); latLonBox.addSubtag(rotation); icon.addSubtag(new XMLTag("refreshMode", "onInterval")); icon.addSubtag(new XMLTag("refreshInterval", "86400")); icon.addSubtag(new XMLTag("viewBoundScale", "0.75")); gOverlay.addSubtag(new XMLTag("color", "7fffffff")); gOverlay.addSubtag(new XMLTag("drawOrder", "1")); gOverlay.addSubtag(icon); gOverlay.addSubtag(latLonBox); return gOverlay; } public static MapIcon getIconObject() { MapIcon icon = new MapIcon("ID", "http://foldingmap.co/icons/standard_bar-small.png"); icon.setRefreshInterval(86400f); icon.setRefreshMode(MapIcon.ON_INTERVAL); return icon; } public static XMLTag getIconTag() { XMLTag returnTag; returnTag = new XMLTag("Icon id=\"ID\"", new XMLTag("href", "http://foldingmap.co/icons/standard_bar-small.png")); returnTag.addSubtag(new XMLTag("refreshMode", "onInterval")); returnTag.addSubtag(new XMLTag("refreshInterval", "86400")); return returnTag; } public static IconStyle getIconStyleObject() { IconStyle is = new IconStyle("Style", new Color(204, 0, 0, 255)); is.setImageFileName("http://foldingmap.co/icons/standard_bar-small.png"); is.setScale(1.399f); return is; } public static XMLTag getIconStyleTag() { XMLTag iconStyleTag, iconTag, returnTag; iconTag = new XMLTag("Icon", new XMLTag("href", "http://foldingmap.co/icons/standard_bar-small.png")); iconStyleTag = new XMLTag("IconStyle", new XMLTag("color", "ff0000cc")); iconStyleTag.addSubtag(new XMLTag("scale", "1.399")); iconStyleTag.addSubtag(iconTag); returnTag = new XMLTag("Style id=\"Style\"", iconStyleTag); return returnTag; } public static InnerBoundary getInnerBoundartObject() { CoordinateList<Coordinate> list = new CoordinateList<Coordinate>(); list.add(new Coordinate(30f, 37.818977f, -122.366212f)); list.add(new Coordinate(30f, 37.819294f, -122.365424f)); list.add(new Coordinate(30f, 37.819731f, -122.365704f)); list.add(new Coordinate(30f, 37.819402f, -122.366488f)); /* FoldingMap objects do not require that closed objects' CoordinateLists * have the first and last coordinates the same. */ return new InnerBoundary(list); } public static XMLTag getInnerBoundaryTag() { XMLTag coordinatesTag, linearRingTag, returnTag; coordinatesTag = new XMLTag("coordinates", "-122.366212,37.818977,30 -122.365424,37.819294,30 -122.365704,37.819731,30 -122.366488,37.819402,30 -122.366212,37.818977,30"); linearRingTag = new XMLTag("LinearRing", coordinatesTag); returnTag = new XMLTag("innerBoundaryIs", linearRingTag); return returnTag; } public static LabelStyle getLabelStyleObject() { Color fillColor, outlineColor; Font font; fillColor = new Color(204, 0, 0, 255); outlineColor = new Color(60, 68, 75); font = new Font(Font.SANS_SERIF, Font.BOLD, 18); return new LabelStyle(fillColor, outlineColor, font); } public static XMLTag getLabelStyleTag() { XMLTag returnTag; returnTag = new XMLTag("LabelStyle", new XMLTag("color", "ff0000cc")); returnTag.addSubtag(new XMLTag("colorMode", "random")); returnTag.addSubtag(new XMLTag("scale", "1.5")); return returnTag; } public static LinearRing getLinearRingObject() { CoordinateList<Coordinate> coordinates = TestRoadLineString.getCoordinates(); return new LinearRing("Northwest Johnson Street", "Road - City Secondary", coordinates); } public static XMLTag getLinearRingTag() { XMLTag LineStringTag, returnTag; LineStringTag = new XMLTag("LinearRing id=\"Road - City Secondary\"", new XMLTag("gx:altitudeOffset", "0")); returnTag = new XMLTag("PlaceMark", new XMLTag("name", "Northwest Johnson Street")); LineStringTag.addSubtag(new XMLTag("extrude", "0")); LineStringTag.addSubtag(new XMLTag("tessellate", "0")); LineStringTag.addSubtag(new XMLTag("altitudeMode", "clampToGround")); LineStringTag.addSubtag(new XMLTag("gx:drawOrder", "0")); LineStringTag.addSubtag(getCoordinateTag()); returnTag.addSubtag(LineStringTag); return returnTag; } public static XMLTag getLineStringTag() { XMLTag LineStringTag, returnTag; LineStringTag = new XMLTag("LineString id=\"Road - City Secondary\"", new XMLTag("gx:altitudeOffset", "0")); returnTag = new XMLTag("PlaceMark", new XMLTag("name", "Northwest Johnson Street")); LineStringTag.addSubtag(new XMLTag("extrude", "0")); LineStringTag.addSubtag(new XMLTag("tessellate", "0")); LineStringTag.addSubtag(new XMLTag("altitudeMode", "clampToGround")); LineStringTag.addSubtag(new XMLTag("gx:drawOrder", "0")); LineStringTag.addSubtag(getCoordinateTag()); returnTag.addSubtag(LineStringTag); return returnTag; } public static LevelOfDetail getLodObject() { return new LevelOfDetail(-1, 256); } public static XMLTag getLodTag() { XMLTag returnTag; returnTag = new XMLTag("Lod", new XMLTag("minLodPixels", "256")); returnTag.addSubtag(new XMLTag("maxLodPixels", "-1")); returnTag.addSubtag(new XMLTag("minFadeExtent", "0")); returnTag.addSubtag(new XMLTag("maxFadeExtent", "0")); return returnTag; } public static LatLonAltBox getLatLonAltBoxObject() { return new LatLonAltBox(43.374f, 42.983f, -0.335f, -1.423f, 0, 0); } public static XMLTag getLatLonAltBoxTag() { XMLTag returnTag; returnTag = new XMLTag("LatLonAltBox", new XMLTag("north", "43.374")); returnTag.addSubtag(new XMLTag("south", "42.983")); returnTag.addSubtag(new XMLTag("east", "-0.335")); returnTag.addSubtag(new XMLTag("west", "-1.423")); returnTag.addSubtag(new XMLTag("minAltitude", "0")); returnTag.addSubtag(new XMLTag("maxAltitude", "0")); return returnTag; } public static LineStyle getLineStyleObject() { return new LineStyle("linestyle", new Color(204, 0, 0, 255), 4, LineStyle.SOLID, false); } public static XMLTag getLineStyleTag() { XMLTag lineStyle, returnTag; lineStyle = new XMLTag("LineStyle", new XMLTag("color", "ff0000cc")); lineStyle.addSubtag(new XMLTag("width", "4")); lineStyle.addSubtag(new XMLTag("gx:labelVisibility", "1")); returnTag = new XMLTag("Style id=\"linestyle\"", lineStyle); return returnTag; } public static MultiGeometry getMultiGeometryObject() { MultiGeometry multi = new MultiGeometry("test"); multi.addObject(getPointObject()); multi.addObject(TestRoadLineString.getLineString()); multi.addObject(getLinearRingObject()); multi.addObject(getPolygonObject()); return multi; } public static XMLTag getMultiGeometryTag() { XMLTag placemarkTag = new XMLTag("MultiGeometry", new XMLTag("name", "test")); XMLTag multiTag = new XMLTag("MultiGeometry", getPointTag()); multiTag.addSubtag(getLineStringTag()); multiTag.addSubtag(getLinearRingTag()); multiTag.addSubtag(getPolygonTag()); placemarkTag.addSubtag(multiTag); return placemarkTag; } public static NetworkLayer getNetworkLinkObject() { NetworkLayer testLayer = new NetworkLayer("Network Link", "http://flash3.ess.washington.edu/lightning_src.kmz"); testLayer.setLayerDescription("Test Network Link"); return testLayer; } public static XMLTag getNetworkLinkTag() { XMLTag networkLinkTag = new XMLTag("NetworkLink", new XMLTag("name", "Network Link")); XMLTag linkTag = new XMLTag("Link", new XMLTag("href", "http://flash3.ess.washington.edu/lightning_src.kmz")); networkLinkTag.addSubtag(new XMLTag("visibility", "0")); networkLinkTag.addSubtag(new XMLTag("open", "0")); networkLinkTag.addSubtag(new XMLTag("description", "Test Network Link")); networkLinkTag.addSubtag(new XMLTag("refreshVisibility", "0")); networkLinkTag.addSubtag(new XMLTag("flyToView", "0")); networkLinkTag.addSubtag(linkTag); return networkLinkTag; } public static MapPoint getPointObject() { Coordinate c = new Coordinate(0, -43.60505741890396f, 170.1435558771009f); return new MapPoint("Pin on a mountaintop", "pushpin", "", c); } public static XMLTag getPointTag() { XMLTag coordinateTag, nameTag, pointTag, returnTag, styleTag; coordinateTag = new XMLTag("coordinates", "170.1435558771009,-43.60505741890396,0"); pointTag = new XMLTag("Point", coordinateTag); styleTag = new XMLTag("styleUrl", "#pushpin"); nameTag = new XMLTag("name", "Pin on a mountaintop"); returnTag = new XMLTag("Placemark id=\"mountainpin1\"", nameTag); returnTag.addSubtag(styleTag); returnTag.addSubtag(pointTag); return returnTag; } public static Polygon getPolygonObject() { CoordinateList<Coordinate> list = new CoordinateList<Coordinate>(); list.add(new Coordinate("-122.365662,37.826988,0")); list.add(new Coordinate("-122.365202,37.826302,0")); list.add(new Coordinate("-122.364581,37.82655,0")); list.add(new Coordinate("-122.365038,37.827237,0")); list.add(new Coordinate("-122.365662,37.826988,0")); return new Polygon("Polygon", "Polygon", list); } public static PolygonStyle getPolygonStyleObject() { PolygonStyle style; style = new PolygonStyle("Park", new Color(255, 255, 255, 255)); style.setOutline(true); return style; } public static XMLTag getPolygonTag() { XMLTag coordinateTag, linearRingTag, nameTag, outerBoundTag, polyTag, returnTag; coordinateTag = new XMLTag("coordinates", "-122.365662,37.826988,0 -122.365202,37.826302,0 -122.364581,37.82655,0 -122.365038,37.827237,0 -122.365662,37.826988,0"); linearRingTag = new XMLTag("LinearRing", coordinateTag); outerBoundTag = new XMLTag("outerBoundaryIs", linearRingTag); polyTag = new XMLTag("Polygon", outerBoundTag); nameTag = new XMLTag("name", "Polygon"); returnTag = new XMLTag("Placemark id=\"Polygon\"", nameTag); returnTag.addSubtag(polyTag); return returnTag; } public static XMLTag getPolyStyleTag() { XMLTag returnTag; returnTag = new XMLTag("PolyStyle id=\"Park\"", new XMLTag("color", "ffffffff")); returnTag.addSubtag(new XMLTag("colorMode", "normal")); returnTag.addSubtag(new XMLTag("fill", "1")); returnTag.addSubtag(new XMLTag("outline", "1")); return returnTag; } public static Region getRegionObject() { return new Region("Test Region", getLatLonAltBoxObject(), getLodObject()); } public static XMLTag getRegionTag() { XMLTag returnTag; returnTag = new XMLTag("Region id=\"Test Region\"", getLatLonAltBoxTag()); returnTag.addSubtag(getLodTag()); return returnTag; } public static LineString getTrackObject() { CoordinateList<Coordinate> cList = new CoordinateList<Coordinate>(); cList.add(new Coordinate("-122.207881,37.371915,156.000000,2010-05-28T02:02:09Z")); cList.add(new Coordinate("-122.205712,37.373288,152.000000,2010-05-28T02:02:35Z")); cList.add(new Coordinate("-122.204678,37.373939,147.000000,2010-05-28T02:02:44Z")); cList.add(new Coordinate("-122.203572,37.374630,142.199997,2010-05-28T02:02:53Z")); cList.add(new Coordinate("-122.203451,37.374706,141.800003,2010-05-28T02:02:54Z")); cList.add(new Coordinate("-122.203329,37.374780,141.199997,2010-05-28T02:02:55Z")); cList.add(new Coordinate("-122.203207,37.374857,140.199997,2010-05-28T02:02:56Z")); return new LineString("", "", cList); } public static XMLTag getTrackTag() { XMLTag whenTag0 = new XMLTag("when", "2010-05-28T02:02:09Z"); XMLTag whenTag1 = new XMLTag("when", "2010-05-28T02:02:35Z"); XMLTag whenTag2 = new XMLTag("when", "2010-05-28T02:02:44Z"); XMLTag whenTag3 = new XMLTag("when", "2010-05-28T02:02:53Z"); XMLTag whenTag4 = new XMLTag("when", "2010-05-28T02:02:54Z"); XMLTag whenTag5 = new XMLTag("when", "2010-05-28T02:02:55Z"); XMLTag whenTag6 = new XMLTag("when", "2010-05-28T02:02:56Z"); XMLTag coordTag0 = new XMLTag("gx:coord", "-122.207881 37.371915 156.000000"); XMLTag coordTag1 = new XMLTag("gx:coord", "-122.205712 37.373288 152.000000"); XMLTag coordTag2 = new XMLTag("gx:coord", "-122.204678 37.373939 147.000000"); XMLTag coordTag3 = new XMLTag("gx:coord", "-122.203572 37.374630 142.199997"); XMLTag coordTag4 = new XMLTag("gx:coord", "-122.203451 37.374706 141.800003"); XMLTag coordTag5 = new XMLTag("gx:coord", "-122.203329 37.374780 141.199997"); XMLTag coordTag6 = new XMLTag("gx:coord", "-122.203207 37.374857 140.199997"); XMLTag trackTag = new XMLTag("gx:Track", whenTag0); trackTag.addSubtag(whenTag1); trackTag.addSubtag(whenTag2); trackTag.addSubtag(whenTag3); trackTag.addSubtag(whenTag4); trackTag.addSubtag(whenTag5); trackTag.addSubtag(whenTag6); trackTag.addSubtag(coordTag0); trackTag.addSubtag(coordTag1); trackTag.addSubtag(coordTag2); trackTag.addSubtag(coordTag3); trackTag.addSubtag(coordTag4); trackTag.addSubtag(coordTag5); trackTag.addSubtag(coordTag6); return new XMLTag("Placemark", trackTag); } }