1

当用户开始向任何方向移动时,我想在运行时在地图上绘制线条(路径)。

现在我可以像这样静态地在两点之间划一条线-

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);

但是我想随着用户的运动动态地画线,谷歌地图 Api V2 可以吗?

谢谢

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

    }

现在您有两个新点,即用户当前存在的一个点,以及上次位置更新的最后一个点,您必须在不删除旧路径的情况下绘制一条新路径,所以我猜这将解决您的问题。

于 2013-05-12T11:44:13.580 回答