Я работаю над приложением Android для отслеживания текущего местоположения пользователя (с помощью GPS) и маршрутизации на картах Google при изменении местоположения.Слишком много точек, снятых onLocationChanged в android google maps
Для сохранения маршрута я собираю широты и долготу каждого местоположения и сохраняю его в списке, нажав кнопку «Сохранить», список преобразуется в JSON и отправляется на сервер для сохранения. Он отлично работает, как и должен.
public void onLocationChanged(Location location) {
showLocation.setText("" + location.getLatitude() + " , " + location.getLongitude());
drawLine(location, latLng);
latLongsForRoute.add(latLng);
for (LatLng latLong : latLongsForRoute) {
Log.i("Latitude is: ", "" + latLong.latitude);
Log.i("Longitude is: ", "" + latLong.longitude);
}
}
Но, проблема в том, даже если пользователь перемещается на 1 км, то он дает мне тысячи широт и долгот, которые слишком много данных, чтобы сэкономить. И останьте дело на трассе длиной 10-15 км.
[
{
"latitude": 30.7084098,
"longitude": 76.7030218,
"zzCY": 1
},
{
"latitude": 30.7084009,
"longitude": 76.7030315,
"zzCY": 1
},
{
"latitude": 30.7083951,
"longitude": 76.7030796,
"zzCY": 1
},
{
"latitude": 30.7084004,
"longitude": 76.7029865,
"zzCY": 1
},
{
"latitude": 30.7083882,
"longitude": 76.703018,
"zzCY": 1
},
{
"latitude": 30.708417,
"longitude": 76.7030046,
"zzCY": 1
},
{
"latitude": 30.7083921,
"longitude": 76.7030199,
"zzCY": 1
},
{
"latitude": 30.7084087,
"longitude": 76.7029926,
"zzCY": 1
},
{
"latitude": 30.7083846,
"longitude": 76.7029833,
"zzCY": 1
}
]
(Эти многочисленные пункты были получены 15-20 метров длиной)
Как я могу получить меньшее количество данных, то есть меньшего количества широты долгот, но с высокой точностью, а также правильным маршрутом.