1

Java で (SAX を使用して) KML ファイルを読み取るクラスをいくつか作成しました。テストしましたが、問題なく動作します。次に、jar を作成し、Android プロジェクトにインポートしました。しかし、同じ kML を読み取ろうとすると、結果が得られません。パーサーは空のリスト (ベクター) を返します

それが私がJavaで作った方法です:

Vector<Point> listPoints = new Vector<Point>();
String src = "C:/Users/A556520/Documents/Proyectos/PolygonDoubleKML/res/Glorias_def.kml";       
InputStream inputStream =new FileInputStream(src);      
ReaderKML kmlreader = new ReaderKML(inputStream);
time_start = System.currentTimeMillis();
listPoints = kmlreader.parseKML();
time_end = System.currentTimeMillis();
System.out.println("Tiempo de ejecución: "+ (time_end-time_start)/1000f);

出力は正しい --> Tiempo de ejecución: 0.073 || N ポイント = 401

次に、私が言ったように、jar を Android プロジェクトにインポートします。

Vector<Point> lista;
Polygon glorias;
ReaderKML kmlReader;
String pathKML = "~res/raw/glorias_def.kml";
InputStream input_kml;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
input_kml = getResources().openRawResource(R.raw.glorias_def);
kmlReader = new ReaderKML(input_kml);
lista = kmlReader.parseKML();       
}

protected void onStart() {
    super.onStart();        
    tv_1.setText("Npoints = "+Integer.toString(lista.size()));
}

そして、textView で得られるのはNpoints = 0、そうでなければならないときNpoints = 401です...何が悪いのかわかりません... kml ファイルは ~res/raw 内にあり、Java でテストするために使用したものと同じです。

4

0 に答える 0