2017-09-29 11 views
0

ジオロケーションをリアルタイムに追跡するアプリケーションを作成しています。そのトラックを保存してからgpxファイルにエクスポートして、別のアプリケーションにインポートできるようにする必要がありますいくつかの変更を加えたら、LatLng ArrayListからgpxファイルを作るにはどうすればいいですか?LatLng ArrayListからGPXファイルを書き出す方法

答えて

0

ファイルは、この例の構造のようにする必要があります拡張子.gpx とコヒーレントXMLファイルを作成するために必要なタグを作成します。理想的には

<?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
<gpx xmlns="http://www.topografix.com/GPX/1/1" creator="byHand" version="1.1" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd"> 

    <wpt lat="39.921055008" lon="3.054223107"> 
    <ele>12.863281</ele> 
    <time>2005-05-16T11:49:06Z</time> 
    <name>Cala Sant Vicenç - Mallorca</name> 
    <sym>City</sym> 
    </wpt> 
</gpx> 
0

LatLngクラスでは使用できませんGPXファイルshould consists of valid timestamps。可能であれば、Locationクラスのリストを使用することをお勧めします。以下は、Locationクラスを使用したサンプルソリューションです。

public static void generateGfx(File file, String name, List<Location> points) { 

    String header = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\" ?><gpx xmlns=\"http://www.topografix.com/GPX/1/1\" creator=\"MapSource 6.15.5\" version=\"1.1\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd\"><trk>\n"; 
    name = "<name>" + name + "</name><trkseg>\n"; 

    String segments = ""; 
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); 
    for (Location location : points) { 
     segments += "<trkpt lat=\"" + location.getLatitude() + "\" lon=\"" + location.getLongitude() + "\"><time>" + df.format(new Date(location.getTime())) + "</time></trkpt>\n"; 
    } 

    String footer = "</trkseg></trk></gpx>"; 

    try { 
     FileWriter writer = new FileWriter(file, false); 
     writer.append(header); 
     writer.append(name); 
     writer.append(segments); 
     writer.append(footer); 
     writer.flush(); 
     writer.close(); 

    } catch (IOException e) { 
     Log.e("generateGfx", "Error Writting Path",e); 
    } 
} 
関連する問題