From 24b34ed42741f002fed858acf387fa9a334b7732 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Sat, 3 Sep 2011 01:15:06 +0300 Subject: [PATCH] Implement new GPX Reader --- .../src/net/osmand/data/index/1.xml | 316 ------------------ OsmAnd/res/values-ru/strings.xml | 2 +- OsmAnd/src/net/osmand/GPXUtilities.java | 15 +- .../plus/activities/LocalIndexHelper.java | 4 +- .../osmand/plus/activities/MapActivity.java | 2 +- .../plus/activities/MapActivityLayers.java | 22 +- 6 files changed, 18 insertions(+), 343 deletions(-) delete mode 100644 DataExtractionOSM/src/net/osmand/data/index/1.xml diff --git a/DataExtractionOSM/src/net/osmand/data/index/1.xml b/DataExtractionOSM/src/net/osmand/data/index/1.xml deleted file mode 100644 index 2613e1d5f8..0000000000 --- a/DataExtractionOSM/src/net/osmand/data/index/1.xml +++ /dev/null @@ -1,316 +0,0 @@ - - - - - CloudMade - - - - - http://cloudmade.com/faq#license - - - - - 10164 - - Неизвестная дорога возле Минск - Неизвестная дорога возле Боровляны - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Направляйтесь на северо-восток, 55 м - - 55 - - 0 - 55 м - NE - 30.2 - - - - Поверните налево, 61 м - - 61 - - 1 - 61 м - NW - 300.7 - TL - 270.4 - - - - Поверните направо на просп. Независимости, 3.1 км - - 3050 - - 4 - 3.1 км - NE - 30.9 - TR - 91.0 - - - - Продолжайте движение по просп. Независимости, 3.7 км - - 3736 - - 35 - 3.7 км - NE - 65.6 - C - 0.5 - - - - Продолжайте движение по просп. Независимости, 0.8 км - - 772 - - 63 - 0.8 км - NE - 61.6 - C - 358.6 - - - - Примите вправо, 0.7 км - - 707 - - 69 - 0.7 км - E - 90.0 - TSLR - 30.1 - - - - Продолжайте движение по M9/МКАД, 0.9 км - - 877 - - 86 - 0.9 км - N - 346.1 - C - 0.2 - - - - Примите вправо, 0.2 км - - 164 - - 94 - 0.2 км - NW - 311.5 - TSLR - 9.1 - - - - Поверните налево на Городецкая ул., 0.2 км - - 198 - - 101 - 0.2 км - NW - 301.3 - TL - 272.6 - - - - Поверните направо на ул. Гинтовта, 1.4 км - - 1389 - - 104 - 1.4 км - NE - 28.2 - TR - 85.6 - - - - Поверните налево на Лопатина ул., 0.2 км - - 180 - - 131 - 0.2 км - NW - 308.0 - TL - 242.8 - - - - Поверните направо, 0.3 км - - 258 - - 134 - 0.3 км - NE - 53.8 - TR - 111.6 - - - - \ No newline at end of file diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index add6ca1436..c36593ea7a 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -2,7 +2,7 @@ \n\nДлинное нажатие для просмотра на карте \nСредняя скорость : %1$s \nМаксимальная скорость : %2$s - \nСредняя высота : %1$.0f метров\nМинимальная высота : %2$.0f метров\Максимальная высота : %3$.0f метров\nПодъем вверх : %4$.0f метров\nПодъем вниз : %5$.0f метров + \nСредняя высота : %1$.0f метров\nМинимальная высота : %2$.0f метров\nМаксимальная высота : %3$.0f метров\nПодъем вверх : %4$.0f метров\nПодъем вниз : %5$.0f метров Путей : %1$d\nВсего точек : %2$d\nОтмечено точек : %3$d\nВсего расстояние : %4$s \nНачало : %5$tD %5$tR\nОкончание : %6$tD %6$tR\n Установлено diff --git a/OsmAnd/src/net/osmand/GPXUtilities.java b/OsmAnd/src/net/osmand/GPXUtilities.java index f42e37fa3d..d448077f9d 100644 --- a/OsmAnd/src/net/osmand/GPXUtilities.java +++ b/OsmAnd/src/net/osmand/GPXUtilities.java @@ -303,7 +303,7 @@ public class GPXUtilities { ((GPXExtensions) parse).getExtensionsToWrite().put(tag, value); if (tag.equals("speed") && parse instanceof WptPt) { try { - ((WptPt) parse).speed = Float.parseFloat(parser.getText()); + ((WptPt) parse).speed = Float.parseFloat(value); } catch (NumberFormatException e) { } } @@ -319,7 +319,7 @@ public class GPXUtilities { if (parser.getName().equals("trk")) { Track track = new Track(); ((GPXFile) parse).tracks.add(track); - parserState.push(new Track()); + parserState.push(track); } if (parser.getName().equals("rte")) { Route route = new Route(); @@ -336,7 +336,7 @@ public class GPXUtilities { ((Route) parse).name = readText(parser, "name"); } if (parser.getName().equals("desc")) { - ((Route) parse).name = readText(parser, "desc"); + ((Route) parse).desc = readText(parser, "desc"); } if (parser.getName().equals("rtept")) { WptPt wptPt = parseWptAttributes(parser); @@ -348,7 +348,7 @@ public class GPXUtilities { ((Track) parse).name = readText(parser, "name"); } if (parser.getName().equals("desc")) { - ((Track) parse).name = readText(parser, "desc"); + ((Track) parse).desc = readText(parser, "desc"); } if (parser.getName().equals("trkseg")) { TrkSegment trkSeg = new TrkSegment(); @@ -366,7 +366,7 @@ public class GPXUtilities { if (parser.getName().equals("name")) { ((WptPt) parse).name = readText(parser, "name"); } else if (parser.getName().equals("desc")) { - ((WptPt) parse).name = readText(parser, "desc"); + ((WptPt) parse).desc = readText(parser, "desc"); } else if (parser.getName().equals("ele")) { String text = readText(parser, "ele"); if (text != null) { @@ -387,11 +387,10 @@ public class GPXUtilities { String text = readText(parser, "time"); if (text != null) { try { - ((WptPt) parse).time = format.parse(parser.getText()).getTime(); + ((WptPt) parse).time = format.parse(text).getTime(); } catch (ParseException e) { } } - ((WptPt) parse).name = readText(parser, "hdop"); } } } @@ -451,7 +450,7 @@ public class GPXUtilities { WptPt wpt = new WptPt(); try { wpt.lat = Double.parseDouble(parser.getAttributeValue("", "lat")); //$NON-NLS-1$ //$NON-NLS-2$ - wpt.lon= Double.parseDouble(parser.getAttributeValue("", "lon")); //$NON-NLS-1$ //$NON-NLS-2$ + wpt.lon = Double.parseDouble(parser.getAttributeValue("", "lon")); //$NON-NLS-1$ //$NON-NLS-2$ } catch (NumberFormatException e) { } return wpt; diff --git a/OsmAnd/src/net/osmand/plus/activities/LocalIndexHelper.java b/OsmAnd/src/net/osmand/plus/activities/LocalIndexHelper.java index 8fd65cb177..511d628074 100644 --- a/OsmAnd/src/net/osmand/plus/activities/LocalIndexHelper.java +++ b/OsmAnd/src/net/osmand/plus/activities/LocalIndexHelper.java @@ -132,7 +132,6 @@ public class LocalIndexHelper { Track subtrack = result.tracks.get(i); for(TrkSegment segment : subtrack.segments){ totalTracks++; - int distance = 0; points += segment.points.size(); for (int j = 0; j < segment.points.size(); j++) { WptPt point = segment.points.get(j); @@ -164,9 +163,8 @@ public class LocalIndexHelper { diffElevationDown -= diff; } } - distance += MapUtils.getDistance(prev.lat, prev.lon, point.lat, point.lon); + totalDistance += MapUtils.getDistance(prev.lat, prev.lon, point.lat, point.lon); } - totalDistance += distance; } } diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index af0c0683a3..c9425c660c 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -1259,7 +1259,7 @@ public class MapActivity extends Activity implements IMapLocationListener, Senso builder.show(); return true; } - }, true); + }, false); } public void contextMenuPoint(final double latitude, final double longitude){ diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java index 19f96603ee..0cf6e7535d 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java @@ -338,7 +338,7 @@ public class MapActivityLayers { } return true; } - }, false); + }, true); } private void updateGPXLayer(){ @@ -350,7 +350,7 @@ public class MapActivityLayers { } } - public void selectGPXFileLayer(final CallbackWithObject callbackWithObject, boolean forRouting) { + public void selectGPXFileLayer(final CallbackWithObject callbackWithObject, final boolean convertCloudmade) { final List list = new ArrayList(); final OsmandSettings settings = getApplication().getSettings(); final File dir = settings.extendOsmandPath(ResourceManager.GPX_PATH); @@ -393,22 +393,16 @@ public class MapActivityLayers { new Thread(new Runnable() { @Override public void run() { - final GPXFile res = GPXUtilities.loadGPXFile(activity, f, true); - if (res.warning != null) { - activity.runOnUiThread(new Runnable() { - @Override - public void run() { - Toast.makeText(activity, res.warning, Toast.LENGTH_LONG).show(); - } - }); - - } + final GPXFile res = GPXUtilities.loadGPXFile(activity, f, convertCloudmade); dlg.dismiss(); activity.runOnUiThread(new Runnable() { @Override public void run() { - callbackWithObject.processResult(res); - + if(res.warning != null){ + Toast.makeText(activity, res.warning, Toast.LENGTH_LONG).show(); + } else { + callbackWithObject.processResult(res); + } } }); }