現在地を表示したい

スポンサーリンク
スポンサーリンク

現在地を取得して地図上に表示したいので調べた。

スポンサーリンク

現在地の取得&表示

うまく自分の中でまとまってないけど、できはした。権限の話やらなんやら。

うまく言葉で書けないから、ソースだけ書いとこ。

double lat = 0;
double lon = 0;
LocationManager locationmanager = (LocationManager) getSystemService(LOCATION_SERVICE);
GPSLocationListener locationlistener = new GPSLocationListener();
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

    String[] permissions = {Manifest.permission.ACCESS_FINE_LOCATION};
    ActivityCompat.requestPermissions(this, permissions, 1000);
    return;
}
locationmanager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1000, locationlistener);
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    if (requestCode == 1000 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
        LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
        GPSLocationListener locationlistener = new GPSLocationListener();
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            return;
        }
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1000, locationlistener);
    }
}
private class GPSLocationListener implements LocationListener {
    @Override
    public void onLocationChanged(Location location) {
        lat = location.getLatitude();
        lon = location.getLongitude();

        LatLng latlon = new LatLng(lat, lon);

        marker.setPosition(latlon);
        mMap.moveCamera(CameraUpdateFactory.newLatLng(latlon));
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
    }

    @Override
    public void onProviderEnabled(String provider) {
    }

    @Override
    public void onProviderDisabled(String provider) {
    }
}

色々あった。

参考

Android6.0以上の端末で動作するGoogleMapsアプリを作成ろうとしていきなりハマったことまとめ - Qiita
はじめにAndroid6.0以上の端末で動作するGoogleMapを利用した簡単なアプリを作ろうと始めたところ、開始早々いきなりつまずきました。そこで、同じようにハマった方がいた場合にその助けに…
LocationManager  |  Android Developers
1800a-gps

コメント

タイトルとURLをコピーしました