Мне нужно местоположение с синей точкой, без location.getLatitude / Longtitude - PullRequest
0 голосов
/ 09 января 2019

У меня проблема. Мое приложение использует координаты, чтобы нарисовать путь между последующими местоположениями: первое местоположение ко второму, второе к третьему и т. Д. У приложения нет проблем с рисованием пути, но мое местоположение имеет шум, и линии повсюду. Я знаю, что синяя точка на Картах Google использует алгоритмы сглаживания, различных поставщиков местоположения и другие корректировки. Могу ли я взять координаты этой синей точки по умолчанию? Не нормальные координаты без алгоритмов.

public void onMapReady(GoogleMap map) {

mMap = map;


if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
        == PackageManager.PERMISSION_GRANTED) {
    mMap.setMyLocationEnabled(true);

    lokalizacja();

} else {

    ActivityCompat.requestPermissions(WorkoutActivity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, MY_LOCATION_REQUEST_CODE);
}


routeOpts = new PolylineOptions()
        .color(Color.BLUE)
        .width(5 /* TODO: respect density! */)
        .geodesic(true);
route = mMap.addPolyline(routeOpts);
route.setVisible(drawTrack);

mMap.setOnMyLocationButtonClickListener(this);
mMap.setOnMyLocationClickListener(this); }

public void lokalizacja() { //Context context = getApplicationContext();

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

locationListener = new LocationListener() {


    @Override
    public void onLocationChanged(Location location) {




        if (routeOpts != null) {                                               
                lat = (float) location.getLatitude();
                lng = (float) location.getLongitude();

            LatLng myLatLng = new LatLng(lat, lng);
            List<LatLng> points = route.getPoints();
            points.add(myLatLng);
            route.setPoints(points);
        }


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

        Log.d("tocos","StatusChanged");
    }

    @Override
    public void onProviderEnabled(String provider) {
        Log.d("tocos","Enabled");
    }

    @Override
    public void onProviderDisabled(String provider) {
        Log.d("tocos","Disabled");
    }
};

1 Ответ

0 голосов
/ 09 января 2019

Я думаю, что вам нужно использовать FusedLocationProvider от сервисов Google Play вместо встроенного LocationManager, который поставляется с ОС. Взгляните на этот ответ , который объясняет это очень подробно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...