Benutzer-Werkzeuge

Webseiten-Werkzeuge


usercontent:navigation_-_tomtom-poi_datei_lesen

Navigation - TomTom-POI Datei lesen

Sonderziele für Navigationsgeräte von TomTom. Diese Routine liest einen Datensatz aus der OV2-Datei. OV2 Dateien können in den Navigationsgeräten von TomTom genutzt werden.

package readers;
 
import java.io.FileInputStream;
import java.io.IOException;
 
public class OV2RecordReader {
 
    public static String[] readOV2Record(FileInputStream inputStream){
        String[] record = null;
        int b = -1;
        try{
            if ((b = inputStream.read())> -1) {
                // if it is a simple POI record
                if (b == 2) {
                    record = new String[3];
                    long total = readLong(inputStream);
 
                    double longitude = (double) readLong(inputStream) / 100000.0;
                    double latitude = (double) readLong(inputStream) / 100000.0;
 
                    byte[] r = new byte[(int) total - 13];
                    inputStream.read(r);
 
                    record[0] = new String(r);
                    record[0] = record[0].substring(0,record[0].length()-1);
                    record[1] = Double.toString(latitude);
                    record[2] = Double.toString(longitude);
                }
                //if it is a deleted record
                else if(b == 0){
                    byte[] r = new byte[9];
                    inputStream.read(r);
                }
                //if it is a skipper record
                else if(b == 1){
                    byte[] r = new byte[20];
                    inputStream.read(r);
                }
                else{
                    throw new IOException("wrong record type");
                }
            }
            else{
                return null;
            }
        }
        catch(IOException e){
            e.printStackTrace();
        }
        return record;
    }
 
    private static long readLong(FileInputStream is){
        long res = 0;
        try{
            res = is.read();
            res += is.read() <<8;
            res += is.read() <<16;
            res += is.read() <<24;
        }
        catch(IOException e){
            e.printStackTrace();
        }
        return res;
    }
}

Beispiel getestet mit Version

ab Java 8

Quelle

usercontent/navigation_-_tomtom-poi_datei_lesen.txt · Zuletzt geändert: 16/06/2014 11:19 von 87.164.67.172