Changeset 108


Ignore:
Timestamp:
08/28/07 21:10:08 (4 years ago)
Author:
saua
Message:

Add some statistict and nicer formatting to the exported KML files (fixes #23)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • bbtracker/trunk/src/org/bbtracker/mobile/exporter/KmlTrackExporter.java

    r61 r108  
    11/* 
    22 * Copyright 2007 Joachim Sauer 
     3 * Copyright 2007 SIB 
    34 *  
    45 * This file is part of bbTracker. 
     
    2829import org.bbtracker.TrackSegment; 
    2930import org.bbtracker.Utils; 
     31import org.bbtracker.UnitConverter; 
     32import org.bbtracker.mobile.Preferences; 
    3033 
    3134public class KmlTrackExporter implements TrackExporter { 
     
    3437        private static final String KML_HEADER = "<kml xmlns=\"http://earth.google.com/kml/2.1\">\n"; 
    3538 
    36         private static final String STYLE_NAME = "sn_style"; 
     39        private static final String STYLE_NAME = "sn_ylw-pushpin"; 
    3740 
    38         private static final String STYLE_TAG = "\t<Style id=\"" + STYLE_NAME + "\"></Style>\n"; 
     41        private static final String STYLE_TAG = "\t<Style id=\"" + STYLE_NAME + "\">\n" + "<LineStyle>\n" + 
     42                        "<color>63eeee17</color>\n" + "<width>4</width>\n" + "</LineStyle>\n" + "</Style>\n"; 
    3943 
    4044        public String getFileName(final Track track) { 
     
    4650                try { 
    4751                        final String xmlName = Utils.escapeXml(track.getName()); 
     52                        // Added 2007 SIB 
     53                        final UnitConverter unit = Preferences.getInstance().getUnitsConverter(); 
     54                        final String lengthString = unit.distanceToString(track.getLength()); 
     55                        final String timeString; 
     56                        if (track.getPointCount() > 0) { 
     57                                final TrackPoint lastPoint = track.getPoint(track.getPointCount() - 1); 
     58                                final long duration = track.getPointOffset(lastPoint); 
     59                                timeString = Utils.durationToString(duration); 
     60                        } else { 
     61                                timeString = "-"; 
     62                        } 
     63                        final String maxElevString = unit.elevationToString(track.getMaxElevation()); 
     64                        final String minElevString = unit.elevationToString(track.getMinElevation()); 
     65                        final String maxSpeedString = unit.speedToString(track.getMaxSpeed()); 
     66 
    4867                        w = new OutputStreamWriter(out, "UTF-8"); 
    4968                        w.write(XML_HEADER); 
     
    6483                        w.write(STYLE_NAME); 
    6584                        w.write("</styleUrl>\n"); 
     85 
     86                        w.write("<description><![CDATA[<table>\n"); 
     87                        w.write("<tr><td><b>Total Distance: </b>"); 
     88                        w.write(lengthString); 
     89                        w.write("</td></tr>\n"); 
     90                        w.write("<tr><td><b>Total Time: </b>"); 
     91                        w.write(timeString); 
     92                        w.write("</td></tr>\n"); 
     93                        w.write("<tr><td><b>Max Speed: </b>"); 
     94                        w.write(maxSpeedString); 
     95                        w.write("</td></tr>\n"); 
     96                        w.write("<tr><td><b>Max Elevation: </b>"); 
     97                        w.write(maxElevString); 
     98                        w.write("</td></tr>\n"); 
     99                        w.write("<tr><td><b>Min Elevation: </b>"); 
     100                        w.write(minElevString); 
     101                        w.write("</td></tr>\n"); 
     102                        w.write(")</table>]]></description>)"); 
     103 
    66104                        w.write("\t\t<LineString>\n\t\t\t<coordinates>\n"); 
    67105                        final Enumeration segments = track.getSegments(); 
Note: See TracChangeset for help on using the changeset viewer.