/** * Creates a new KmlMultiGeometry object * * @return KmlMultiGeometry object */ private static KmlMultiGeometry createMultiGeometry(XmlPullParser parser) throws XmlPullParserException, IOException { ArrayList<Geometry> geometries = new ArrayList<Geometry>(); // Get next otherwise have an infinite loop int eventType = parser.next(); while (!(eventType == END_TAG && parser.getName().equals("MultiGeometry"))) { if (eventType == START_TAG && parser.getName().matches(GEOMETRY_REGEX)) { geometries.add(createGeometry(parser, parser.getName())); } eventType = parser.next(); } return new KmlMultiGeometry(geometries); }
@Override public String toString() { StringBuilder sb = new StringBuilder(getGeometryType()).append("{"); sb.append("\n geometries=").append(getGeometryObject()); sb.append("\n}\n"); return sb.toString(); } }
/** * Adds all the geometries within a KML MultiGeometry to the map. Supports recursive * MultiGeometry. Combines styling of the placemark with the coordinates of each geometry. * * @param multiGeometry contains array of geometries for the MultiGeometry * @param urlStyle contains relevant styling properties for the MultiGeometry * @return array of Marker, Polyline and Polygon objects */ private ArrayList<Object> addMultiGeometryToMap(KmlPlacemark placemark, KmlMultiGeometry multiGeometry, KmlStyle urlStyle, KmlStyle inlineStyle, boolean isContainerVisible) { ArrayList<Object> mapObjects = new ArrayList<>(); ArrayList<Geometry> kmlObjects = multiGeometry.getGeometryObject(); for (Geometry kmlGeometry : kmlObjects) { mapObjects.add(addKmlPlacemarkToMap(placemark, kmlGeometry, urlStyle, inlineStyle, isContainerVisible)); } return mapObjects; }
public void testGetKmlGeometryType() throws Exception { kmlMultiGeometry = createMultiGeometry(); assertNotNull(kmlMultiGeometry); assertNotNull(kmlMultiGeometry.getGeometryType()); assertEquals("MultiGeometry", kmlMultiGeometry.getGeometryType()); }
public void testGetGeometry() throws Exception { kmlMultiGeometry = createMultiGeometry(); assertNotNull(kmlMultiGeometry); assertEquals(kmlMultiGeometry.getGeometryObject().size(), 1); KmlLineString lineString = ((KmlLineString) kmlMultiGeometry.getGeometryObject().get(0)); assertNotNull(lineString); }
public void testMultiGeometry() throws Exception { XmlPullParser xmlPullParser = createParser(R.raw.amu_multigeometry_placemarks); KmlPlacemark placemark = KmlFeatureParser.createPlacemark(xmlPullParser); assertNotNull( placemark ); assertEquals( placemark .getGeometry().getGeometryType(), "MultiGeometry"); KmlMultiGeometry multiGeometry = ((KmlMultiGeometry) placemark .getGeometry()); assertEquals(multiGeometry.getGeometryObject().size(), 3); }
public void testNullGeometry() { try { kmlMultiGeometry = new KmlMultiGeometry(null); fail(); } catch (IllegalArgumentException e) { assertEquals("Geometries cannot be null", e.getMessage()); } } }
public KmlMultiGeometry createMultiGeometry() { ArrayList<Geometry> kmlGeometries = new ArrayList<Geometry>(); ArrayList<LatLng> coordinates = new ArrayList<LatLng>(); coordinates.add(new LatLng(0, 0)); coordinates.add(new LatLng(50, 50)); coordinates.add(new LatLng(100, 100)); Geometry kmlGeometry = new KmlLineString(coordinates); kmlGeometries.add(kmlGeometry); return new KmlMultiGeometry(kmlGeometries); }