0

アプリを実行すると、すべての国を確認できる世界地図が表示されます。しかし、これは私が望んでいるものではありません。私の国や都市の地図を例として表示したいのです。これを行う方法はありますか?これはこれまでの私のコードです。これにはxmlコードは必要ないと思いますか?

public class MainActivity extends Activity {

    private GoogleMap gMap;
    private LocationManager locationManager;
    private Location location, g;
    private double lati, longi;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        gMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();    
//      gMap.setMyLocationEnabled(true);
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        System.out.println("Last known location: " + location); 
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    public void showUsersPosition(View v) {
        gMap.setMyLocationEnabled(true);

        if(location != null) {
            lati = location.getLatitude();
            longi = location.getLongitude();                
        }
        gMap.addMarker(new MarkerOptions().position(new LatLng(lati, longi)).title("You are here"));
    }
}

このボタンがクリックされたときにユーザーの場所を表示するボタンも追加しました。これは、メソッド「showUsersPosition」で発生します。しかし、この時点では、アプリの起動時に場所を設定しようとしても、場所は null です。なぜそれがnullなのか誰にもわかりますか?gMap.setMyLocation(true) が呼び出されると、シンボルが右隅に表示され、これをクリックすると自分の位置が表示されます。しかし、ボタンをクリックしたときにこれを行うようにしたいのです。

1. 世界地図ではなく、自分の国や都市の地図を表示するにはどうすればよいですか? 2. Location が null なのはなぜですか? 3. ボタンをクリックしたときに自分の正確な位置を表示するにはどうすればよいですか

4

1 に答える 1

1

1) フラグメント宣言でこれを使用して、デフォルトの緯度と経度を設定できます。

  map:cameraTargetLat="Your Latitude"
  map:cameraTargetLng="Your Longitude"

xmlns:map="http://schemas.android.com/apk/res-auto"フラグメントがない場合は、忘れずに装着してください。

2)ドキュメントから:

プロバイダーが現在無効になっている場合は、null が返されます。

GPS はオンになっていますか? また、新しいLocation APIを使用する必要があります。

3) あなたの現在地の正確さは、その場所を取得するために使用されたプロバイダーに基づきます。新しいFused Providerを使用する利点の 1 つは、システムが可能な限り最適な場所を取得しようとすることです。

于 2013-09-06T14:25:51.790 に答える