62

私はこれについての答えを高くも低くも探しましたが、フォーラムの質問で誰も助けることができませんでした. チュートリアルを検索しました。APIガイドには次のように書かれています:

[現在地] ボタンは、[現在地] レイヤーが有効になっている場合にのみ、画面の右上隅に表示されます。

そのため、この現在地レイヤーを探していましたが、何も見つかりませんでした。Google マップに現在地を表示するにはどうすればよいですか?

4

6 に答える 6

157

API ガイドはすべて間違っています (本当に Google?)。Maps API v2 では、自分自身を表示するためにレイヤーを有効にする必要はありません。マップで作成した GoogleMaps インスタンスを呼び出すだけです。

Google ドキュメント

Google が提供する実際のドキュメントが答えを提供します。あなたはただする必要があります

コトリンを使用している場合

// map is a GoogleMap object
map.isMyLocationEnabled = true


Javaを使用している場合

// map is a GoogleMap object
map.setMyLocationEnabled(true);

そして魔法が起こるのを見てください。

API レベル 23 (M) 以上で実行時に場所のアクセス許可を取得し、リクエストしたことを確認してください。

于 2013-02-28T17:41:17.990 に答える
40

Javaコード:

public class MapActivity extends FragmentActivity implements LocationListener  {

    GoogleMap googleMap;
    LatLng myPosition;

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

        // Getting reference to the SupportMapFragment of activity_main.xml
        SupportMapFragment fm = (SupportMapFragment)
        getSupportFragmentManager().findFragmentById(R.id.map);

        // Getting GoogleMap object from the fragment
        googleMap = fm.getMap();

        // Enabling MyLocation Layer of Google Map
        googleMap.setMyLocationEnabled(true);

        // Getting LocationManager object from System Service LOCATION_SERVICE
        LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

        // Creating a criteria object to retrieve provider
        Criteria criteria = new Criteria();

        // Getting the name of the best provider
        String provider = locationManager.getBestProvider(criteria, true);

        // Getting Current Location
        Location location = locationManager.getLastKnownLocation(provider);

        if (location != null) {
            // Getting latitude of the current location
            double latitude = location.getLatitude();

            // Getting longitude of the current location
            double longitude = location.getLongitude();

            // Creating a LatLng object for the current location
            LatLng latLng = new LatLng(latitude, longitude);

            myPosition = new LatLng(latitude, longitude);

            googleMap.addMarker(new MarkerOptions().position(myPosition).title("Start"));
        }
    }
}

activity_map.xml:

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:map="http://schemas.android.com/apk/res-auto"
  android:id="@+id/map"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  class="com.google.android.gms.maps.SupportMapFragment"/>

あなたは青い円であなたの現在の場所を取得します。

于 2013-03-01T05:32:56.487 に答える
18

「現在地」ボタンを表示するには、電話する必要があります

map.getUiSettings().setMyLocationButtonEnabled(true);

GoogleMap オブジェクトで。

于 2013-02-28T18:17:22.660 に答える