2

地図上に道を描く必要があります。そのために、新しい Google マップ以降、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) {
4

1 に答える 1

0

ラインには最低 2 つのポイントが必要です。1 つの点のみを使用して線を引こうとしています。これにより、無限に小さい線が描画されますが、これは非常に小さいため、見るのが困難になります。

線を引きたい場合は、2 つ以上の点を使用します。一点に何かを描きたい場合は、ポリラインではなくマーカーを使用してください。

于 2013-01-04T19:22:45.893 に答える