android – My map does not show my location, nor the button of my location. Why?

I followed a reason for videos and questions from this forum to implement, but for some reason that is not located on the map, not even MyLocationButton appears.
Map

Public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

Context context = this;
mMap private from GoogleMap;
SQLiteDatabase db = null;
Double latitude = 0.0;
Double length;
Chain title, description, date;
Floating dimension1 = 0.5f;
Floating dimension2 = 0.5f;
Float opacity = 1f;
int icon;

@Cancel
void protege onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_maps);
// Get SupportMapFragment and receive a notification when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager ()
.findFragmentById (R.id.map);
mapFragment.getMapAsync (this);

} // END ONCREATE METHOD

@Cancel
Public Void onMapReady (GoogleMap end GoogleMap) {
mMap = googleMap;
mMap.getUiSettings () .setZoomControlsEnabled (true);
mMap.getUiSettings () .setMyLocationButtonEnabled (true);

Final BBDD_Helper bbdd_helper = new BBDD_Helper (context, BBDD_Helper.DATABASE_NAME, null, BBDD_Helper.DATABASE_VERSION);

uploadPoint ();




mMap.setOnMapLongClickListener (new GoogleMap.OnMapLongClickListener () {

@Cancel
public void onMapLongClick (latLng final LatLng) {

// ALERTDIALOG TO CHOOSE ICON
final constructor of AlertDialog.Builder = new AlertDialog.Builder (MapsActivity.this);
LayoutInflater inflater = (LayoutInflater) getApplicationContext () .getSystemService (Context.LAYOUT_INFLATER_SERVICE);
final row of the view = inflater.inflate (R.layout.row_item, null);
ListView listView = (ListView) row.findViewById (R.id.lvIconosMapa);
listView.setAdapter (new CustomAdapter (getApplicationContext ()));
builder.setView (row);

// TITLE OF THE CUSTOMIZED ALERTDIALOG
Final title of TextView = new TextView (MapsActivity.this);
title.setText ("Choose an option");
title.setBackgroundColor (Color.BLUE);
title.setPadding (10, 10, 10, 10);
title.setGravity (Gravity.CENTER);
title.setTextColor (Color.WHITE);
title.setTextSize (20);
builder.setCustomTitle (title);

builder.setNegativeButton ("Cancel", null);
AlertDialog dialog = builder.create () final;
dialog.show ();
// END ALERTDIALOG

listView.setOnItemClickListener (new AdapterView.OnItemClickListener () {
@Cancel
public void onItemClick (AdapterView father, view view, int position, long identification) {

yes (position == 0) {
mMap.addMarker (new MarkerOptions ()
.title ("Title")
.icon (BitmapDescriptorFactory.fromResource (R.drawable.marihuana))
.anchor (0.5f, 0.5f)
.snippet ("Description")
.position (latLng));
Double latitude = latLng.latitude;
Double length = latlng.length;
date = String.valueOf (Math.random ());
Intent intention = new Intent (getApplicationContext (), DatosCarcas.class);
intent.putExtra ("LATITUDE", latitude);
intent.putExtra ("LENGTH", length);
intent.putExtra ("ICONO", R.drawable.marihuana);
intent.putExtra ("DATE", date);
startActivity (intention);
}
yes no (position == 1) {
mMap.addMarker (new MarkerOptions ()
.icon (BitmapDescriptorFactory.fromResource (R.drawable.interes))
.title ("Title")
.anchor (0.0f, 1.0f)
.snippet ("Description")
.position (latLng));
Double latitude = latLng.latitude;
Double length = latlng.length;
date = String.valueOf (Math.random ());
Intent intention = new Intent (getApplicationContext (), DatosCarcas.class);
intent.putExtra ("LATITUDE", latitude);
intent.putExtra ("LENGTH", length);
intent.putExtra ("ICONO", R.drawable.interes);
intent.putExtra ("DATE", date);
startActivity (intention);
dialog.cancel ();
}
yes no (position == 2) {
mMap.addMarker (new MarkerOptions ()
.icon (BitmapDescriptorFactory.fromResource (R.drawable.viogen_autor))
.title ("Title")
.anchor (0.0f, 1.0f)
.snippet ("Description")
.position (latLng));
Double latitude = latLng.latitude;
Double length = latlng.length;
date = String.valueOf (Math.random ());
Intent intention = new Intent (getApplicationContext (), DatosCarcas.class);
intent.putExtra ("LATITUDE", latitude);
intent.putExtra ("LENGTH", length);
intent.putExtra ("ICON", R.drawable.viogen_autor);
intent.putExtra ("DATE", date);
startActivity (intention);
dialog.cancel ();
}
yes no (position == 3) {
mMap.addMarker (new MarkerOptions ()
.icon (BitmapDescriptorFactory.fromResource (R.drawable.viogen))
.title ("Title")
.anchor (0.0f, 1.0f)
.snippet ("Description")
.position (latLng));
Double latitude = latLng.latitude;
Double length = latlng.length;
date = String.valueOf (Math.random ());
Intent intention = new Intent (getApplicationContext (), DatosCarcas.class);
intent.putExtra ("LATITUDE", latitude);
intent.putExtra ("LENGTH", length);
intent.putExtra ("ICON", R.drawable.viogen);
intent.putExtra ("DATE", date);
startActivity (intention);
dialog.cancel ();
}
}

});

}


});

mMap.setOnMarkerClickListener (new GoogleMap.OnMarkerClickListener () {
@Cancel
Boolean public onMarkerClick (final scoreboard) {
final constructor of AlertDialog.Builder = new AlertDialog.Builder (MapsActivity.this);
LayoutInflater inflater = (LayoutInflater) getApplicationContext () .getSystemService (Context.LAYOUT_INFLATER_SERVICE);

// TITLE OF THE CUSTOMIZED ALERTDIALOG
Final title of TextView = new TextView (MapsActivity.this);
title.setText (marker.getTitle ());
title.setBackgroundColor (Color.BLUE);
title.setPadding (10, 10, 10, 10);
// title.setGravity (Gravity.CENTER);
title.setTextColor (Color.WHITE);
title.setTextSize (20);
latitude = marker.getPosition () .latitude;
builder.setMessage (marker.getSnippet ());
builder.setCustomTitle (title);
builder.setPositiveButton ("Remove brand", new DialogInterface.OnClickListener () {
@Cancel
public void onClick (dialog DialogInterface, int which) {
SQLiteDatabase db = bbdd_helper.getWritableDatabase ();
String markDelete = marker.getTitle ();
Rope [] argument = {markDelete};
String seleccion = BBDD_Helper.C_COLUMNA_NOMBRE + "LIKE?";
db.delete (BBDD.BBDD_Structure.TABLE_NAME, selection, argument);
Toast.makeText (MapsActivity.this, "The mark has been deleted successfully", Toast.LENGTH_LONG) .show ();
Cursor c = db.query (BBDD.BBDD_Structure.TABLE_NAME,
null, null, null, null, null, null);
int size = c.getCount ();
googleMap.clear ();
uploadPoint ();

}



});
builder.setNegativeButton ("Close", null);

AlertDialog dialog = builder.create () final;
dialog.show ();
// END ALERTDIALOG
// marker.showInfoWindow ();
true returns
}
});

}

private void setMarker (LatLng position, String title, String description, float opacity, float dimesion1, float dimension2, int icon) {
mMap.addMarker (new MarkerOptions ()
.position
.Title
.snippet (description)
.alpha (opacity)
.anchor (dimesion1, dimension2)
.icon (BitmapDescriptorFactory.fromResource (icon));

}

Private void to loadPoints () {
BBDD_Helper bbdd_helper = new BBDD_Helper (context, BBDD_Helper.DATABASE_NAME, null, BBDD_Helper.DATABASE_VERSION);
db = bbdd_helper.getReadableDatabase ();
Cursor c = db.query (
BBDD.BBDD_Structure.TABLE_NAME, // Name of the table
null, // List of Columns to consult
null, // Columns for the WHERE clause
null, // Values ​​to be compared with the columns of the WHERE
null, // Group with GROUP BY
null, // Condition HAVING for GROUP BY
null // Clause ORDER BY
);
if (c.moveToFirst ()) {
// Let's move the cursor until there are no more records
do {
latitude = c.getDouble (2);
length = c.getDouble (3);
title = c.getString (1);
description = c.getString (4);
icon = c.getInt (5);
setMarker (new LatLng (latitude, longitude), title, description, opacity, dimension1, dimension2, icon);
} while (c.moveToNext ());
}
db.close ();

yes (latitude! = 0.0) {
CameraUpdate camUpd1 =
CameraUpdateFactory
.newLatLngZoom (new LatLng (latitude, longitude), 15);
mMap.moveCamera (camUpd1);}}
}

Manifest Permissions

android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.INTERNET
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_WIFI_STATE
com.google.android.providers.gsf.permission.READ_GSERVICES
android.permission.ACCESS_COARSE_LOCATION
android.permission.ACCESS_FINE_LOCATION