无法根据当前位置在Google Map v2上绘制

时间:2013-01-04 19:16:29

标签: android api google-maps maps

我需要在地图上绘制一条路径。为此,我考虑使用Polyline,因为新的谷歌地图。我的问题是我的应用程序工作,但它并没有在地图上绘制一个东西。我希望每当我改变位置时画画,基本上是为了画出我的道路。

public class MapActivity extends FragmentActivity implements LocationListener {
    GoogleMap               myMap;
    Location                lastLocation;
    private LocationManager locManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.map_layout);
        myMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
        myMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);


        locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        boolean networkEnabled = locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
        if (!networkEnabled) {
            Toast.makeText(this, "network not enabled", 0);
        }

    }

    @Override
    protected void onResume() {
        super.onResume();
        locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);

    }


    @Override
    public void onLocationChanged(Location location) {
        if (location != null) {
            lastLocation=locManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
            Polyline line=myMap.addPolyline(new PolylineOptions().add(new LatLng(location.getLatitude(),location.getLongitude())).color(Color.RED));

        }
    }

    @Override
    public void onProviderDisabled(String provider) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onProviderEnabled(String provider) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {

1 个答案:

答案 0 :(得分:0)

线条至少需要两个点。您正尝试仅使用单个点绘制线条。这将绘制一条无限小的线,你将很难看到它,因为它是无限小的。

如果要绘制线条,请使用两个或多个点。如果要在单个点绘制某些内容,请使用标记,而不是折线。