用户移动绘制地图Api V2

时间:2013-03-28 06:27:20

标签: android google-maps-android-api-2

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

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

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

但是我想用用户移动来动态绘制线条,是否可以使用Google Maps Api V2?

由于

1 个答案:

答案 0 :(得分: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

    }

现在你有两个新用户当前存在的点,以及最后一个位置更新的最后一个点,你必须绘制一个新路径而不删除旧路径,这样我就可以解决你的问题了。