-1

私はアンドロイドプログラミングが初めてで、グーグルマップv2アンドロイドでポリラインを描こうとしています。座標 (100 以上) は asstes ディレクトリの 2 つの txt ファイル (lat 用の txt と lng 用の txt) に保存されます。ファイルのコンテンツを文字列で読み込もうとしましたが、ポリライン機能のためにこれらを double に変換する方法がわかりません。Double.parseDouble(contentdlat); うまくいきません!

txt の ar seperatet の座標を「,」で囲み、次のように表示します。

dlat.txt = 42.4630,42.4539

dlng.txt = -75.0572,-73.9737

更新: 2 つではなく 1 つのファイルのみを使用するようになりました。

coord_short.txt = 42.4630、-75.0572、42.4539、-73.9737

古いコードを以下に示します。

//Add Polyline
         ArrayList<LatLng> all=new ArrayList<LatLng>();
         ArrayList<Double> lat1=new ArrayList<Double>();
         ArrayList<Double> lon=new ArrayList<Double>();

         AssetManager assetManager = getAssets();

         // To load dlat text file
         InputStream inputdlat;
         try {
         inputdlat = assetManager.open("dlat.txt");

         int sizedlat = inputdlat.available();
         byte[] bufferdlat = new byte[sizedlat];
         inputdlat.read(bufferdlat);
         inputdlat.close();

         // byte buffer into a string
         String contentdlat = new String(bufferdlat);
         Toast.makeText(this, contentdlat, Toast.LENGTH_SHORT).show();
         //String[] splitdlat = contentdlat.split(",");

         }
         catch (IOException e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
                 }


        // To load dlng text file
         InputStream inputdlng;
         try {
         inputdlng = assetManager.open("dlng.txt");

         int sizedlng = inputdlng.available();
         byte[] bufferdlng = new byte[sizedlng];
         inputdlng.read(bufferdlng);
         inputdlng.close();

         // byte buffer into a string
         String contentdlng = new String(bufferdlng);
         Toast.makeText(this, contentdlng, Toast.LENGTH_SHORT).show();
         //String[] splitdlng = contentdlng.split(",");

         }
         catch (IOException e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
                 }

         double dlat = Double.parseDouble(contentdlat);
         double dlat = Double.parseDouble(contentdlng);

         //double[] dlat = {42.4630,42.4539};
         //double[] dlon = new double[]{-75.0572,-73.9737};

         for(double n : dlat){
         lat1.add(n);
         }

         for(double n : dlon){
         lon.add(n);
         }

         for(int a=0;a<lat1.size();a++)
         {
         LatLng allLatLng= new LatLng(lat1.get(a),lon.get(a));
         all.add(allLatLng);
         }

         Polyline polyline = map.addPolyline(new PolylineOptions()
         .addAll(all)
         .width(8)
         .color(Color.GREEN));

誰かが私を助けることができれば、それは素晴らしいことです。

Piyush Gupta の助けを借りて、コードを次のように変更しました。

         AssetManager assetManager = getAssets();

         // To load coordinate text with hundreds of coordinates file like 
         InputStream input;
         try {

         input = assetManager.open("coord_short.txt");

         int size = input.available();
         byte[] buffer = new byte[size];
         input.read(buffer);
         input.close();

         // byte buffer into a string
         String content = new String(buffer);
         String[] separated = content.split(",");
         String latString = separated[0]; 
         String longString = separated[1];

         double coordlat = Double.parseDouble(latString);
         double coordlon = Double.parseDouble(longString);
         LatLng coordlocation = new LatLng(coordlat, coordlon);




             Polyline polyline = map.addPolyline(new PolylineOptions()
             .add(coordlocation)
             .width(8)
             .color(Color.GREEN));  



         }
         catch (IOException e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
                 }

しかし、現在、私のポリラインは地図に描かれていません。

今何が間違っていますか?

4

1 に答える 1

0
InputStream is = getAssets().open("test.txt");
int size = is.available();
byte[] buffer = new byte[size]; //declare the size of the byte array with size of the file
is.read(buffer); //read file
is.close(); //close file

// Store text file data in the string variable
    String str_data = new String(buffer);
于 2013-08-22T09:45:51.997 に答える