1

I want to draw the lines ( path ) on the map at run time, when user start moving in any direction.

Current now I can make a line between the two points statically like this -

public void onCreate(Bundle savedInstanceState) 
{
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);

 md = new GMapV2Direction();
 mMap = ((SupportMapFragment)getSupportFragmentManager()
                .findFragmentById(R.id.map)).getMap();

 LatLng coordinates = new LatLng(13.685400079263206, 100.537133384495975);      
 mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(coordinates, 16));

 mMap.addMarker(new MarkerOptions().position(fromPosition).title("Start"));
 mMap.addMarker(new MarkerOptions().position(toPosition).title("End"));

 Document doc = md.getDocument(fromPosition, toPosition, GMapV2Direction.MODE_WALKING);
 int duration = md.getDurationValue(doc);
 String distance = md.getDistanceText(doc);
 String start_address = md.getStartAddress(doc);
 String copy_right = md.getCopyRights(doc);

 ArrayList<LatLng> directionPoint = md.getDirection(doc);
 PolylineOptions rectLine = new PolylineOptions().width(3).color(Color.RED);

 for(int i = 0 ; i < directionPoint.size() ; i++) {         
    rectLine.add(directionPoint.get(i));
 }

 mMap.addPolyline(rectLine);

But I want to draw the line dynamically with the users movemement, is it possible with Google Maps Api V2 ?

Thanks

4

1 に答える 1

1

関数 onMyLocationChange を使用してこれを行うことができますが、アクティビティは OnMyLocationChangeListener を実装する必要があります

   @Override
    public void onMyLocationChange(Location arg0) {

lastLatLng =    currentLatLng ; 

currentLatLng = new LatLng(arg0.getLatitude(), arg0.getLongitude());

// here draw again path between those two points

    }

これで、ユーザーが現在存在する2つの新しいポイントと、最後の場所の更新からの最後のポイントができました。古いパスを削除せずに新しいパスを描画する必要があるため、これで問題が解決すると思います。

于 2013-05-12T11:44:13.580 に答える