2017-12-27 4 views
1

Bitte helfen Sie mir, Ich habe meine lat, long-Wert in arrayList<String> gespeichert, aber ich bin nicht in der Lage, es zu neuen LatLng-Klasse hinzuzufügen.Wie fügt man Arraylist Lat Long Wert in neue LatLng Klasse

Ich muss Lat, Long-Wert von json abrufen und es zu (String) ArrayList<String> hinzufügen.

Ich möchte meine ganze ArrayList Lat, Long in latln Klasse hinzufügen, wo ich es mit Polyline sehen kann.

Aber ich bin in der Lage, ein lat und lang zu bekommen und es zeigt in meiner Google Map. Aber ich bin nicht in der Lage, alle ArrayList Wert zu erhalten. Ich habe viele Male versucht. Und wie man Abstand durch Lat und Long misst Unten ist mein Code;

ArrayList<String> arr; 

if(b!=null){ 
      arr = (ArrayList<String>)b.getStringArrayList("array_list"); 
      // System.out.println(arr); 
     } 
    String s=arr.toString(); 
    System.out.println(s.substring(1, s.length()-1)); 

    String ss=s.substring(1,s.length()-1); 
    System.out.println(ss); 
    d=ss.split(","); 
    for (int i=0;i<d.length;i++){ 
     if(i%2==0){ 
      dd=d[i]; 
      System.out.println(dd +"all even"); 
     }else{ 
      nd=d[i]; 

      System.out.println(nd +"all odd"); 
     } 


    } 

    List<LatLng> point = new ArrayList<LatLng>(); 
    double pointY[]={Double.parseDouble(nd)}; 
    double pointX[]={Double.parseDouble(dd)}; 
    for (int i = 0 ; i < pointX.length; i++){ 

     point.add(new LatLng(pointX[i],pointY[i])); 
    } 
+1

kann ich fragen, warum Sie nicht ein JSON-Framework für die Analyse der JSON in einen Pojo verwenden? Ich schlage vor, ein Framework namens jackson –

+0

Sehr geehrter Herr, ich bin in der Lage, alle Json zu bekommen und ich habe es in Arraylist gespeichert und übergeben Sie seine Daten mit putExtra. Aber mein Problem ist, dass ich keinen Arraylist-Wert in meine Google Map hinzufügen kann. Ich kann nur einen Marker bekommen. Aber ich habe 5 Lat, lange Wert. –

+0

Anstatt all diese seltsame String-Manipulation zu machen, erstellen Sie eine benutzerdefinierte Arraylist der modalen Klasse und fügen Sie Daten entweder mit Konstruktor oder Getter/Setter zu Ihrer Liste hinzu. Danach Schleife durch die Liste und erhalten Sie Ihre Daten –

Antwort

2

Try this,

Ihr spitz zulauf wurde pointX mit letzten Punkt initialisiert. Setzen Sie die für Schleife zu füllen alle Werte

ArrayList<String> arr; 
    Bundle b = getIntent().getExtras(); 
if(b!=null){ 
      arr = (ArrayList<String>)b.getStringArrayList("array_list"); 
      // System.out.println(arr); 
     } 
    String s=arr.toString(); 
    System.out.println(s.substring(1, s.length()-1)); 

String ss=s.substring(1,s.length()-1); 
System.out.println(ss); 


d=ss.split(","); 
List<Double> pointY = new ArrayList<>(); 
    List<Double> pointX = new ArrayList<>(); 

for (int i=0;i<d.length;i++){ 
    if(i%2==0){ 
     dd=d[i]; 
     pointX.add(Double.parseDouble(dd)); 
     System.out.println(dd +"all even"); 
    }else{ 
     nd=d[i]; 
     pointY.add(Double.parseDouble(nd)); 
     System.out.println(nd +"all odd"); 
    } 


} 

List<LatLng> point = new ArrayList<LatLng>(); 
for (int i = 0 ; i < pointX.size(); i++){ 

    point.add(new LatLng(pointX.get(i),pointY.get(i))); 
} 
+0

danke, lassen Sie mich versuchen :) –

+0

Initialisierung erhalten ist hier nicht erlaubt pointX [x ++] = {Double.parseDouble (dd)}; –

+0

@HarishKumar überprüfen Sie aktualisierte Antwort – Raghavendra

0

Ich bin nicht sicher, was und warum Sie versuchen zu tun und Ihren Code nicht lesbar ist (sorry Ihre Codierung Stil ist schrecklich). Aber ich kann einen Ausschnitt darüber zeigen, wie ich das machen würde.

public static void main(String args[]) { 
    // some example data 
    String coord1lat = "15.235235"; 
    String coord1lng = "31.776776"; 
    String coord2lat = "34.334346"; 
    String coord2lng = "31.776776"; 
    String[] coordinatesStringList = {coord1lat, coord1lng, coord2lat, coord2lng}; 

    List<LatLng> latLngList = new ArrayList<LatLng>(); 
    for(int i=0; i<coordinatesStringList.length; i+=2){ 
     LatLng pont = new LatLng(Double.parseDouble(coordinatesStringList[i]), Double.parseDouble(coordinatesStringList[i+1])); 
     latLngList.add(point); 
    } 
} 

Noch einmal, ich entmutige Sie stark, Breiten und Längen in einer Reihe zu speichern. Ich kenne deinen Fall nicht, aber versuche, sie in Paaren zu speichern. Wie String coord1 = "15.23235,16.232342"

+0

Sehr geehrter Herr, ich habe Arraylist wie = 28.6613494,77.1483808, 28.6613494, 77.1483808, 28.550819, 77.255524, 28.6613486, 77.1483728, 28.6613486, 77.1483728, 28.6613486, 77.1483728. wie kann ich es hinzufügen. wenn ich es nicht teilen würde. –

+0

Ich bin mir nicht sicher, was Sie sagen wollen. Sie müssen es nicht teilen, wenn es ein Array ist. Sie hätten das aufgeteilt, wenn Sie alle Koordinaten in String (nicht String-Array) hätten.Wie 'String Koordinaten =" 28.6613494,77.1483808, 28.6613494,77.1483808, 28.550819, 77.255524, 28.6613486,77.1483728, 28.6613486,77.1483728, 28.6613486,77.1483728 "' Aber es ist nicht so, oder? –

+0

oh. Ich habe deine Logik verstanden. Danke. –

Verwandte Themen