Search code examples
androidgoogle-mapsgoogle-polyline

Polyline option in google map v2 in android


I want to display a route on google map according to lat long. of the particular location. I have pasted my code here. I am getting only a google map as an output but not the route line...plz help me where i m getting wrong.Thanx in advance.

@SuppressLint("NewApi")
public class MapActivity extends Activity implements OnMapClickListener, OnMapLongClickListener
{   

    private GoogleMap googleMap;
    private ArrayList<LatLng> arrayPoints = null;
    PolylineOptions polylineOptions; 
    ArrayList<LatLng> points = null;
    String lat12[] = {"13.6","13.75","14.03565","14.28","14.71795","15.252","15.703","16.19","16.95","17.57","20.38"};
    String long12[] = {"89.20","88.89","88.66405","88.625","88.311","88.244","88.17","87.97","87.83","87.36","80.55"};


@SuppressLint("NewApi")
@Override 
protected void onCreate(Bundle savedInstanceState)
{    


    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_map);
    arrayPoints = new ArrayList<LatLng>();
    MapFragment fm = (MapFragment) getFragmentManager().findFragmentById(
            R.id.fragment1);
    googleMap = fm.getMap();
    googleMap.setMyLocationEnabled(true); 
    googleMap.setOnMapClickListener(this); 
    googleMap.setOnMapLongClickListener(this);
    arrayPoints = new ArrayList<LatLng>();




        try {
                    for (int i = 0; i < lat12.length; i++) 
            {

                double lat2=Double.parseDouble(lat12[i]);


                double long2=Double.parseDouble(long12[i]);

                LatLng position = new LatLng(lat2, long2);

                points.add(position);

                //arrayPoints.add(point);

            }
            polylineOptions.addAll(points);
            polylineOptions.color(Color.RED);
            polylineOptions.width(7); 


    polylineOptions.color(Color.RED);
    polylineOptions.width(7); 
    //arrayPoints.add(point);
    //polylineOptions.addAll(arrayPoints); 
    googleMap.addPolyline(polylineOptions);

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

@Override
public void onMapLongClick(LatLng point) 
{
    googleMap.clear(); 
    arrayPoints.clear(); 
}
@Override
public void onMapClick(LatLng arg0) {
    // TODO Auto-generated method stub

}

}

Solution

  • You need to instantiate your points ArrayList before the for-loop. The code has been returning a NullPointerException due to not instantiating this, hence the reason no lines have been showing on the map.