我在Android上有一个地图应用程序,它通过位置数据跟踪您的路线,并将LatLng点存储在SQL数据库中,并使用折线在地图上绘制一条线。
我想更进一步,并允许用户能够保存路线并加载过去的路线。有没有办法可以将整个表数据存储/删除到一个文件中,以便可以创建一个新的路由,然后如果用户选择,可以再次将该文件加载到数据库中?
答案 0 :(得分:0)
答案 1 :(得分: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文件。您可以将这些文件存储在本地存储中,并在用户想要使用过去路径时使用它们。
答案 2 :(得分:0)
让您入门的绝佳指南:
http://developer.android.com/training/location/receive-location-updates.html
教程,可能正是您正在寻找的内容:
http://javapapers.com/android/draw-path-on-google-maps-android-api/
进一步阅读:
我会查看Google的Android位置API:
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: http://developer.android.com/reference/android/location/Location.html
答案 3 :(得分:0)
好吧,让我们在这里思考聪明
一条路线包含许多可能的位置。所以一个好主意是创建两个sql表。一个表用于位置,一个用于路径
因此,您将进行搜索,您将找到路径中存在的所有位置。这取决于您将为数据库实现的实现方式。