2017-02-08 14 views
0

I Koordinaten in arrays.xml wie diese haben:Polylinie Punkte hinzufügen mit for-Schleife

<string-array name="b26"> 
    <item>47.183845335746227,18.408230864565329</item> 
    <item>47.1835746,18.4079741</item> 
    . 
    . 
    . 
    <item>47.181805616004361,18.408938496194111</item> 
</string-array> 

I in ein Array gelesen, spaltete dann an der „“ und legte die lat und lon-Koordinaten in zwei Doppel-Arraylisten. Dann möchte ich diese Punkte zu PolylineOptions hinzufügen, so dass ich eine Polylinie zeichnen kann. Aber der Teil, den ich markiert habe, funktioniert nicht. Wie soll ich das machen?

private GoogleMap mMap; 
String[] array; 
String[] separated; 
ArrayList<Double> lat = new ArrayList<Double>(); 
ArrayList<Double> lon = new ArrayList<Double>(); 

array = getResources().getStringArray(R.array.b26); 
    for(int i=0; i<array.length; i++){ 
     separated = array[i].split(","); 
     lat.add(Double.parseDouble(separated[0])); 
     lon.add(Double.parseDouble(separated[1]));} 
    PolylineOptions rectOptions = new PolylineOptions() 
      for(int i=0; i<array.length; i++){ 
       .add(new LatLng(lat.get(i), lon.get(i)));} <=================== 

    rectOptions.color(Color.RED); 
    mMap.addPolyline(rectOptions); 

Antwort

2

Erstellen Sie einfach ein List<LatLng> mit Ihrem LatLng s und fügen Sie sich die PolylineOptions mit der addAll Methode:

List<LatLng> latlngs = new ArrayList<>(); 
for(int i=0, i<array.length, i++){ 
    latlngs.add(new LatLng(lat.get(i), lon.get(i));) 
} 

PolylineOptions rectOptions = new PolylineOptions().addAll(latlngs);