在Android上的谷歌地图v2上没有正确填充折线

时间:2014-02-23 13:18:53

标签: android map polyline

我正在尝试绘制折线,而我正在步行/驾驶(逐点连接),但它会变得凌乱(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米直线。对此的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

好的,明白了。获得准确性后(使用getAccuracy())我认为有时它超过1000米。经过一些想法后,我决定使用LocationClient而不是LocationManager重写我的位置更新,因为它通过使用GPS提供商和网络提供商的组合更准确。

我按照官方的LocationClient指南HERE