Я создаю приложение для рисования моего пешеходного пути с помощью GPS. Все нормально, траектория прорисовывается при ходьбе, но у меня один вопрос - можно ли как-то программно сделать линию траектории более прямой?
Например. Во-первых, после прогулки я вижу свой путь вот так (это не полилиния, это полигон в примере, но я думаю, что вы поняли идею): https://www.dropbox.com/s/763mq0wja6x7lpy/11.png
Но после сохранения приложение сделало путь более прямым/гладким: https://www.dropbox.com/s/npwkz9coqve7m4g/22.png
Как это сделать? Потому что я понятия не имею.
Я рисую путь с LocationListener
:
LocationManager locationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria(); //criteria.setPowerRequirement(Criteria.POWER_LOW); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setCostAllowed(true); criteria.setSpeedRequired(false); String bestProvider = locationManager.getBestProvider(criteria, true); locationManager.requestLocationUpdates(bestProvider, 500, 3, this );
И прослушиватель onLocationChanged:
@Override
public void onLocationChanged(местоположение) {if(lastLocationloc == null) lastLocationloc = location; LatLng lastLatLng= locationToLatLng(lastLocationloc); LatLng thisLatLng= locationToLatLng(location); mMap.addPolyline (new PolylineOptions().add(lastLatLng).add(thisLatLng).width(4).color(Color.RED)); lastLocationloc = location; }
lastLatLng
иthisLatLng
. Информация о широте и долготе всегда немного шаткая, поэтому, если вы используете это как прямой ввод для рисования линии... линия будет шаткой. Вы можете попытаться немного изменить информацию о широте, чтобы уменьшить шум, но это может быть сложно. - person Stefan de Bruijn   schedule 13.08.2013