私はこれについての答えを高くも低くも探しましたが、フォーラムの質問で誰も助けることができませんでした. チュートリアルを検索しました。APIガイドには次のように書かれています:
[現在地] ボタンは、[現在地] レイヤーが有効になっている場合にのみ、画面の右上隅に表示されます。
そのため、この現在地レイヤーを探していましたが、何も見つかりませんでした。Google マップに現在地を表示するにはどうすればよいですか?
私はこれについての答えを高くも低くも探しましたが、フォーラムの質問で誰も助けることができませんでした. チュートリアルを検索しました。APIガイドには次のように書かれています:
[現在地] ボタンは、[現在地] レイヤーが有効になっている場合にのみ、画面の右上隅に表示されます。
そのため、この現在地レイヤーを探していましたが、何も見つかりませんでした。Google マップに現在地を表示するにはどうすればよいですか?
API ガイドはすべて間違っています (本当に Google?)。Maps API v2 では、自分自身を表示するためにレイヤーを有効にする必要はありません。マップで作成した GoogleMaps インスタンスを呼び出すだけです。
Google が提供する実際のドキュメントが答えを提供します。あなたはただする必要があります
// map is a GoogleMap object
map.isMyLocationEnabled = true
// map is a GoogleMap object
map.setMyLocationEnabled(true);
そして魔法が起こるのを見てください。
API レベル 23 (M) 以上で実行時に場所のアクセス許可を取得し、リクエストしたことを確認してください。
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"/>
あなたは青い円であなたの現在の場所を取得します。
「現在地」ボタンを表示するには、電話する必要があります
map.getUiSettings().setMyLocationButtonEnabled(true);
GoogleMap オブジェクトで。