我正在尝试绘制折线,而我正在步行/驾驶(逐点连接),但它会变得凌乱(Image link)。我阅读了建议here并做了一些研究,我想出了以下代码来做到这一点:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SupportMapFragment supportMapFragment = (SupportMapFragment)
getSupportFragmentManager().findFragmentById(R.id.map);
googleMap = supportMapFragment.getMap();
googleMap.getUiSettings().setCompassEnabled(false);
googleMap.getUiSettings().setMyLocationButtonEnabled(true);
googleMap.setMyLocationEnabled(true);
}
我首先从initializeDraw()开始:
private void initializeDraw(){
rectLine = new PolylineOptions().width(5).color(Color.RED);
newPolyline = googleMap.addPolyline(rectLine);
}
然后我启动OnLocationListener(使用network_provider):
RTlocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 0, drawLocationOnMap);
locationListener(我从中更新点(lat / lng并将凸轮聚焦在该位置):
LocationListener drawLocationOnMap = new LocationListener() {
public void onLocationChanged(Location location) {
LatLng newPoint = new LatLng(location.getLatitude(), location.getLongitude());
points = newPolyline.getPoints();
points.add(newPoint);
newPolyline.setPoints(points);
CameraPosition cameraPosition = new CameraPosition.Builder().target(new LatLng(location.getLatitude(), location.getLongitude()))
.zoom(18)
.bearing(0)
.tilt(70)
.build();
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
};
};
结果: Image link
通过观察上面的图像,它看起来像一个“曲折”,即使我走了100米直线。对此的任何帮助将不胜感激。
答案 0 :(得分:0)
好的,明白了。获得准确性后(使用getAccuracy())我认为有时它超过1000米。经过一些想法后,我决定使用LocationClient而不是LocationManager重写我的位置更新,因为它通过使用GPS提供商和网络提供商的组合更准确。
我按照官方的LocationClient指南HERE