/** * Convert a string of coordinates into an array of LatLngs * * @param coordinatesString coordinates string to convert from * @return array of LatLng objects created from the given coordinate string array */ private static ArrayList<LatLng> convertToLatLngArray(String coordinatesString) { ArrayList<LatLngAlt> latLngAltsArray = convertToLatLngAltArray(coordinatesString); ArrayList<LatLng> coordinatesArray = new ArrayList<LatLng>(); for (LatLngAlt latLngAlt : latLngAltsArray) { coordinatesArray.add(latLngAlt.latLng); } return coordinatesArray; }
/** * Creates a new KmlLineString object * * @return KmlLineString object */ private static KmlLineString createLineString(XmlPullParser parser) throws XmlPullParserException, IOException { ArrayList<LatLng> coordinates = new ArrayList<LatLng>(); ArrayList<Double> altitudes = new ArrayList<Double>(); int eventType = parser.getEventType(); while (!(eventType == END_TAG && parser.getName().equals("LineString"))) { if (eventType == START_TAG && parser.getName().equals("coordinates")) { List <LatLngAlt> latLngAlts = convertToLatLngAltArray(parser.nextText()); for (LatLngAlt latLngAlt : latLngAlts) { coordinates.add(latLngAlt.latLng); if (latLngAlt.altitude != null) { altitudes.add(latLngAlt.altitude); } } } eventType = parser.next(); } return new KmlLineString(coordinates, altitudes); }