1

私はアプリを開発していますが、自分の位置を表示したり、選択した 2 地点間のルートを表示したり、レストランやカフェなどの近くの場所を表示したり、好きな場所でチェックインできるようにする必要があります。もっと簡単に言えば、マップ、ローカル、チェックイン、ナビゲーション機能を組み込む Android アプリ用の小さいバージョンの Google マップが必要です。

私はたくさん検索しましたが、これらのことができるかどうかを教えてくれる有用なものはほとんど見つかりませんでしたか? 同じレイアウトやグラフィックスなどを備えた小さなバージョンの Google マップ (ローカル、ナビゲーション、チェックイン機能を含む) をアプリに表示したいだけです。出来ますか?もしそうなら、誰か助けてくれませんか?

4

2 に答える 2

0

いくつかのことを行う必要があります。

まず、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();
    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 の良い紹介になるはずです。

于 2012-12-21T12:19:40.587 に答える
0

私はこれが非常に便利であることを以前に発見しました。 http://code.google.com/p/android-protips-location/

ただし、Google は最近 Android マップ API をアップグレードしたため、このアプリが一致するように更新されたかどうかはわかりません。

于 2012-12-21T12:12:00.853 に答える