web-dev-qa-db-fra.com

Bouton Ma position sur Google Maps v2 Android, non affiché

Je fais une application, avec google maps, mais quand j'essaye d'ajouter le bouton "mon emplacement", comme le dit la référence ne fonctionne pas ...

c'est comme ça que je fais:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();

        locManager = (LocationManager)getSystemService(LOCATION_SERVICE);
        providersList = locManager.getAllProviders();
        provider =locManager.getProvider(providersList.get(0));
        precision = provider.getAccuracy();
        req = new Criteria();
        req.setAccuracy(Criteria.ACCURACY_FINE);        
        inside = false;

        map.getUiSettings().setMyLocationButtonEnabled(true);

        buildPolygon();
        drawPolygon();
        startLocalization();
    }

J'ai utilisé map.getUiSettings().setMyLocationButtonEnabled(true); comme le montre la référence de google. Je ne sais pas ce qui se passe ..

30
Shudy

Le myLocationButtonEnabled est vrai par défaut et affiché lorsque le calque setMyLocationEnabled est activé.

essaye ça:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();

    // Add this line
    map.setMyLocationEnabled(true);

    locManager = (LocationManager)getSystemService(LOCATION_SERVICE);
    providersList = locManager.getAllProviders();
    provider =locManager.getProvider(providersList.get(0));
    precision = provider.getAccuracy();
    req = new Criteria();
    req.setAccuracy(Criteria.ACCURACY_FINE);        
    inside = false;

    //map.getUiSettings().setMyLocationButtonEnabled(true);

    buildPolygon();
    drawPolygon();
    startLocalization();
}

setMyLocationEnabledDocumentation
setMyLocationButtonEnabledDocumentation

56
jnthnjns

il suffit d'ajouter map.setMyLocationEnabled(true); après avoir créé votre carte

map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();

être comme ça

map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();

map.setMyLocationEnabled(true);
2
Mina Fawzy

Pour moi, map.setMyLocationEnabled (true);
. Plus tard, mon bouton de localisation est devenu visible.

0
creativecoder

Les réponses ci-dessus n'ont pas fonctionné.

override fun onMapReady(googleMap: GoogleMap?) {
    this.googleMap = googleMap

    setupMap()
}

private fun setupMap() {
    if (ActivityCompat.checkSelfPermission(context!!,
            Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
        // Before enabling the My Location layer, you must request location permission from the user.
        googleMap?.isMyLocationEnabled = true
        // *** Use this method ***
        googleMap?.uiSettings?.isMyLocationButtonEnabled = true

        // See https://developers.google.com/maps/documentation/Android-sdk/location
        googleMap?.setOnMyLocationButtonClickListener(this)
        googleMap?.setOnMyLocationClickListener(this)
    } else {
        // Show rationale and request permission.
        requestPermissions(arrayOf(Manifest.permission.ACCESS_FINE_LOCATION),
            LOCATION_REQUEST_CODE)
    }
}
0
CoolMind