2011-08-16 10 views
5

मुझे आश्चर्य है कि अगर कोई जावा लाइब्रेरी मौजूद है, जो टॉमटॉम नेविगेशन डिवाइस के लिए पीओआई डेटा उत्पन्न कर सकती है (आमतौर पर फ़ाइल में .ov2 एक्सटेंशन होता है)।जावा लाइब्रेरी टॉमटॉम जीपीएस पीओआई डेटा उत्पन्न करने के लिए

मैं टॉमटॉम से टॉमटॉम मेकोव 2.एक्सई उपयोग का उपयोग करता हूं, लेकिन यह स्थिर नहीं है और ऐसा लगता है कि अब समर्थित नहीं है।

उत्तर

3

मैं, एक पुस्तकालय लिख है कि खोजने के लिए सक्षम नहीं था, हालांकि मैं इस वर्ग .ov2 फ़ाइलों को पढ़ने में मिला:

<?php 
$csv = file("File.csv"); 
$nbcsv = count($csv); 
$file = "POI.ov2"; 
$fp = fopen($file, "w"); 
for ($i = 0; $i < $nbcsv; $i++) { 
    $table = split(",", chop($csv[$i])); 
    $lon = $table[0]; 
    $lat = $table[1]; 
    $des = $table[2]; 
    $TT = chr(0x02).pack("V",strlen($des)+14).pack("V",round($lon*100000)).pack("V",round($lat*100000)).$des.chr(0x00); 
    @fwrite($fp, "$TT"); 
} 
fclose($fp); 
:

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; 
    } 
} 

मैं भी फ़ाइल लिखने के लिए इस PHP कोड पाया

मुझे यकीन नहीं है कि आप PHP फ़ंक्शन की तरह फ़ाइल लिखने के लिए जावा क्लास (या ऊपर दिए गए विस्तार को) लिखने के बारे में कैसे जाएंगे, लेकिन आप फ़ाइल को एन्कोड करने में कुछ अंतर्दृष्टि प्राप्त कर सकते हैं इसमें से।

+0

उत्तर के लिए धन्यवाद। लेकिन सच्चाई बताने के लिए मैं कुछ उपयोग, परीक्षण, समर्थित पुस्तकालय, और स्क्रैच से एक नया लिखने के लिए तैयार नहीं करना चाहूंगा। – never

संबंधित मुद्दे