我想知道使用 Google Maps API v2 在地图上绘制动态路线的最佳实践是什么。我想要一张能够在用户移动时延长路线的地图。使用 Polyline 和 PolylineOptions 似乎是明显的解决方案。但我就是找不到简单的加分方法after我实例化了折线。绘制多段线是这样的:
PolylineOptions polylineOptions = new PolylineOptions();
polylineOptions.add(POINT1, POINT2, POINT3);
Polyline line = googleMap.addPolyline(polylineOptions);
但是当我将这条线传递给 GoogleMap 后,我无法向其中添加任何新点。就像是
polylineOptions.add(POINT1, POINT2, POINT3);
不会向我的路线添加任何内容。
我可以添加完整的新折线。但有没有办法延长现有的时间呢?我找到了一种方法,获取折线的所有点,添加新点,然后将它们写回到线中:
List<LatLng> points = line.getPoints();
points.add(POINT4);
line.setPoints(points);
但对我来说似乎很麻烦。有任何想法吗?
In the mainActivity
类,定义一个私有静态LatLng
变量命名prev
并将其初始化为(0,0)
第一的。还创建一个标志变量并为其分配 0。在听众的OnLocationChanged
方法,创建局部变量LatLng
named current
并在此处获取当前坐标...首先检查flag的值,如果为0则分配current
to prev
。然后添加多段线。
Assign current
to prev
再次(每次都会发生这种情况,因为第一次之后,标志将为 1)
例如:
public void onLocationChanged(Location location)
{
LatLng current = new LatLng(location.getLatitude(), location.getLongitude());
if(flag==0) //when the first update comes, we have no previous points,hence this
{
prev=current;
flag=1;
}
CameraUpdate update = CameraUpdateFactory.newLatLngZoom(current, 16);
map.animateCamera(update);
map.addPolyline((new PolylineOptions())
.add(prev, current).width(6).color(Color.BLUE)
.visible(true));
prev=current;
current = null;
}
像这样的东西。当然可以进行性能改进,这只是示例代码。但它应该有效。每次折线只会添加前一个点和当前点,从而逐点扩展它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)