いくつかのことを行う必要があります。
まず、Google マップを組み込むには、完全なリファレンスをここで入手できます。
簡単な手順:
1ここの手順に従ってください: これにより、簡単な Google マップが画面に追加されます。
2 自分の位置を取得できるようにするには、Android で LocationListener と LocationManager を使用する必要があります。これを行うには、最初に LocationListener をアクティビティに実装します。
public class LocationActivity extends Activity implements LocationListener
3 次に、onCreate() メソッドでいくつかの設定をインスタンス化する必要があります
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Get the location manager
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
// Define the criteria how to select the provider
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
provider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(provider);
// Initialize the location fields
if (location != null) {
System.out.println("Provider " + provider + " has been selected.");
onLocationChanged(location);
}
}
4 定期的な位置情報の更新をリクエストできる必要があります。これを onResume() メソッドに含めます。
@Override
protected void onResume() {
super.onResume();
locationManager.requestLocationUpdates(provider, 400, 1, this);
}
5 アプリが一時停止サイクルに陥った場合、これらの更新を行う必要はありません。
@Override
protected void onPause() {
super.onPause();
locationManager.removeUpdates(this);
}
6 ステップ 2 のロケーション リスナーの実装では、onLocationChanged リスナーが必要です。実装します。
@Override
public void onLocationChanged(Location location) {
int lat = (int) (location.getLatitude());
int lng = (int) (location.getLongitude());
}
7 GPS またはネットワークの 2 つの方法を追加して、位置設定のプロバイダーに通知します。
public void onProviderDisabled(String arg0) {
Toast.makeText(this, "Disabled provider " + provider,
Toast.LENGTH_SHORT).show();
}
public void onProviderEnabled(String arg0) {
Toast.makeText(this, "Enabled new provider " + provider,
Toast.LENGTH_SHORT).show();
}
8 次に、これを Google マップにリンクする必要があります。Google マップ API を使用して市場を生成し、現在地を表示できるようにする 1 つの例を紹介します。その他の使用法は、API から推測できます。
まず、コードにプライベート フィールドを作成します。
private GoogleMap mMap;
Marker m;
9 これらを onCreate メソッドに追加します。これにより、デフォルトのマーカー位置が緯度と経度 0,0 としてインスタンス化されます。
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
m = mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0))
.title("Position"));
10 onLocationChanged メソッドでは、場所が変更されたときにこのマーカーを更新する必要があります。したがって、次を追加します。
m.setPosition(new LatLng(lat, lng));
m.setTitle("Your Position");
// Move the camera instantly to marker with a zoom
// of 15.
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), 15));
これは、マーカーを自分の位置で更新する簡単な方法であり、Android での Google マップと位置情報 API の良い紹介になるはずです。
GPS がオンになっているかどうかを検出するには、@Dror が提供する回答を使用できます:)