Android谷歌地图v2不显示指南针和位置图标

我无法显示compass图标和my location图标。 我有代码googleMap.getUiSettings.setMyLocationButtonEnabled(true)googleMap.getUiSettings().setCompassEnabled(true); 但没有显示在地图上。

 package com.ctc.weathermap; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.MapFragment; import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.provider.Settings; import android.widget.Toast; public class WeatherMapActivity extends Activity implements LocationListener { private GoogleMap googleMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.weather_maps_main); LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this); LocationManager service = (LocationManager) getSystemService(LOCATION_SERVICE); boolean enabledGPS = service.isProviderEnabled(LocationManager.GPS_PROVIDER); boolean enabledWiFi = service.isProviderEnabled(LocationManager.NETWORK_PROVIDER); if (!enabledGPS) { Toast.makeText(this, "GPS signal not found", Toast.LENGTH_LONG).show(); Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity(intent); } else if(!enabledWiFi) { Toast.makeText(this, "Network signal not found", Toast.LENGTH_LONG).show(); Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity(intent); } initializeMap(); googleMap.getUiSettings().setMyLocationButtonEnabled(true); googleMap.getUiSettings().setCompassEnabled(true); } private void initializeMap() { // check if map is created if(googleMap == null) { googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); // creates the map // check if map is created successfully or not if (googleMap == null) { Toast.makeText(getApplicationContext(), "Map could not be created", Toast.LENGTH_SHORT) .show(); } } } @Override protected void onResume() { super.onResume(); initializeMap(); } @Override public void onLocationChanged(Location location) { googleMap.clear(); MarkerOptions marker = new MarkerOptions().position(new LatLng(location.getLatitude(), location.getLongitude())); marker.title("Current location"); marker.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_CYAN)); googleMap.addMarker(marker); googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(location.getLatitude(), location.getLongitude()), 16)); } @Override public void onProviderDisabled(String arg0) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String arg0) { // TODO Auto-generated method stub } @Override public void onStatusChanged(String arg0, int arg1, Bundle arg2) { // TODO Auto-generated method stub } 

}

其余的代码工作,如标记,什么不是。 我已经尝试将位置和指南针的代码放在initializeMap()但是它仍然不显示。 我将不胜感激任何帮助。 谢谢!

Solutions Collecting From Web of "Android谷歌地图v2不显示指南针和位置图标"

你还没有启用我的位置层。检查此链接了解更多详情

所以请做

 googleMap.setMyLocationEnabled(true); 

之前

 googleMap.getUiSettings().setMyLocationButtonEnabled(true); googleMap.getUiSettings().setCompassEnabled(true); 

这会让你的setMyLocationButton出现

而且, 只有在您将地图旋转至不与北向alignment时罗盘图标才会出现