2016-10-01 32 views
1

現在地を地図に表示するアプリを開発しています。私は現在の場所についてそれについて読んでいます。コードに次の行を追加する必要があります。その後、場所ボタンが表示されなければなりません。しかし、それは動作しません。私たちを手伝ってくれますか?現在の場所が表示されない場合は、場所ボタンが表示されません。

mMap.setMyLocationEnabled(true); 

ここは私のコードです。

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { 

    private GoogleMap mMap; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_maps); 
     // Obtain the SupportMapFragment and get notified when the map is ready to be used. 
     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
      .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 
    } 

    @Override 
    public void onMapReady(GoogleMap googleMap) { 
     mMap = googleMap; 

     // Add a marker in Sydney and move the camera 
     LatLng sydney = new LatLng(-34, 151); 
     mMap.addMarker(new MarkerOptions() 
       .position(sydney) 
       .title("Marker in MyLocation") 
     ); 

     mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney, 40)); 
     if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 
      // TODO: Consider calling 
      return; 
     } 
     mMap.setMyLocationEnabled(true); 
    } 
} 

Androidのマニフェスト:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.hakobm.currentlocation"> 

    <uses-permission android:name="android.permission.INTERNET"></uses-permission> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>  
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>  
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 

     <!-- Google Play Services --> 
     <meta-data 
      android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version" /> 

     <meta-data 
      android:name="com.google.android.geo.API_KEY" 
      android:value="@string/google_maps_key" /> 

     <activity 
      android:name=".MapsActivity" 
      android:label="@string/title_activity_maps"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 
+0

なぜ現在の場所が必要な場合mMap.moveCameraを使用していますか? – Saveen

+0

私が正しいと分かっている場合は、カメラをあなたがいる場所に移動します(またはあなたが座標を与えた場合はwnat)。 –

+0

はい、あなたは正しいですが、MyLocationEnabledを使用したい場合は移動カメラを – Saveen

答えて

0

試してみてください:
mMap.getUiSettingsを()setMyLocationButtonEnabled(真)。

+0

に減らすこれは答えではありません – Saveen

2

あなたは、地図上に現在位置を使用してユーザに提供するために現在地層と現在地]ボタンを使用することができます

ことを覚えておくようになりました。

マイロケーションレイヤーを有効にする前に、必要なものがあることを確認する必要があります。runtime location permission私のanswerは、関連するSOの質問から、How can I show current location on a Google Mapから確認できます。

関連する問題