我希望在用户开始向任何方向移动时在运行时在地图上绘制线条(路径)。
现在我可以静静地在两点之间划一条线 -
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?
由于
答案 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
}
现在你有两个新用户当前存在的点,以及最后一个位置更新的最后一个点,你必须绘制一个新路径而不删除旧路径,这样我就可以解决你的问题了。