2015-12-18 2 views
0

У меня есть приложение для карт на Android, которое отслеживает маршрут по данным местоположения и сохраняет точки LatLng в базе данных SQL и рисует линию на карте с помощью Polyline.Как сохранить и загрузить целые таблицы sql

Я хотел бы продолжить с этим и позволить пользователю иметь возможность сохранять маршрут и загружать прошлые маршруты. Есть ли способ, чтобы я мог хранить/удалять все данные таблицы в файл, чтобы можно было создать новый маршрут, а затем иметь возможность загружать этот файл в базу данных снова, если пользователь выбирает?

+0

Глядя на тип данных геометрии. Представлен в SQL Server 2012. –

ответ

0

1: объекты используют для хранения ДАННЫЕ, и держать их в коллекции, например, (Set, Map, ...)

2: использование сериализации, непосредственно

What does Serializable mean?

0

вы могли бы попробовать сделать Route класс, содержащий всю информацию, которую вы хотите сохранить в базе данных, например, так:

public class Coordinate { 
    double longitude; 
    double latitude; 

    public Coordinate(double x, double y){ 
    this.longitude = x; 
    this.latitude = y; 
    } 
} 

public class Route { 
    private List<Coordinate> coordinates; 

    public Route() { 
     coordinates = new ArrayList<>(); 
    } 
} 

Использование Google Gson, вы можете конвертировать маршруты в файл Json. Вы можете хранить эти файлы в локальном хранилище и использовать их, когда пользователь хочет использовать прошлый маршрут.

+0

Будьте осторожны, чтобы не упасть с края плоской Земли. –

+0

Мой пример мог бы быть яснее, я отредактировал его и сделал его более понятным (очевидно, я имел в виду long and lat) – KoenVE

+0

Хорошо, я проверю это. Итак, помещая все в ArrayList, существует ли вообще потребность в базе данных? –

0

Фантастическое руководство, чтобы вы начали:

http://developer.android.com/training/location/receive-location-updates.html

Учебник, вероятно, именно то, что вы ищете:

http://javapapers.com/android/draw-path-on-google-maps-android-api/


Дополнительная литература:

Я бы смотреть на Android Location API Google:

https://developers.google.com/android/reference/com/google/android/gms/location/package-summary

Он также имеет слушатель встроенный, так что при изменении местоположения пользователей, он будет обновляться автоматически.

После этого вы можете сохранить историю, как вы предлагаете в своей базе данных и, когда требуется. Затем, когда требуется использование API для перестройки или мониторинга текущего пути пользователей.

Расположение СЛУШАТЕЛЬ: https://developers.google.com/android/reference/com/google/android/gms/location/LocationListener

ваши данные, как вы должны предложить перевести в/из API сохраненного формата 'Location' из: http://developer.android.com/reference/android/location/Location.html

+0

Да, я уже сделал все это. Я успешно провел маршрут, основанный на местоположении, и сохранил все переменные Lat и Lng в базе данных SQL. Теперь я хочу сделать этот маршрут в базе данных и сохранить его, чтобы очистить таблицу от новых маршрутов, а также загрузить ее обратно на карту. –

+0

@JaredAllen Итак, вам просто нужно очистить текущую карту и перестроить текущую карту? У вас уже есть API-призыв? Вы просто не знаете, какие объекты вызывать/обновлять? –

+0

Я знаю, как перестроить маршрут из базы данных на карте, используя метод курсора. Я просто хочу знать, как сохранять/экспортировать всю таблицу данных и иметь возможность загружать/импортировать эту таблицу, чтобы у меня были данные для размещения на карте. –

0

Ну давайте подумаем умный здесь.
Маршрут содержит множество возможных местоположений. Хорошая идея - создать две таблицы sql. Одна таблица будет для местоположений и одна для маршрутов
Итак, вы сделаете поиск, и вы найдете все местоположения, которые существуют в маршруте . Это зависит от того, какую реализацию вы сделаете для своей базы данных.

+0

Итак, что вы говорите, создайте таблицу маршрутов, каждая из которых содержит таблицу точек местоположения? Можете ли вы вложить такие таблицы? –

+0

Как я уже сказал, это зависит от того, какую реализацию вы сделаете. В этом случае вам понадобится таблица соединений. Таблица соединения - это таблица, содержащая пару значений. Для получения дополнительной информации прочитайте эту статью: https://en.wikipedia.org/wiki/Junction_table. В вашей таблице Junction вы будете иметь записи этой формы: PL13

+0

Итак, я читал об этом, и у меня есть хорошая идея, как это будет работать. Спасибо, что показал мне что-то новое и мощное. Я буду работать над этим, когда вернусь с работы, и я дам вам знать, как это происходит! –

Смежные вопросы