Android中谷歌地图v2中的折线选项

时间:2014-12-14 06:37:50

标签: android google-maps google-polyline

我想根据lat long在谷歌地图上显示路线。特定的位置。我在这里粘贴了我的代码。我只得到一个谷歌地图作为输出,但不是路线... PLZ帮助我在哪里出错。提前做好。

@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

}

}

1 个答案:

答案 0 :(得分:0)

您需要在for循环之前实例化points ArrayList。由于没有实例化,代码一直返回NullPointerException,因此没有在地图上显示任何行。

相关问题