Java 如何使用谷歌地图实时保存跟踪
其思想是创建一个位置的Java 如何使用谷歌地图实时保存跟踪,java,android,Java,Android,其思想是创建一个位置的ArrayList,每次我在该列表中保存位置数据的同时,我在每个点之间绘制一条多段线 我的问题是关于谷歌地图方法onLocationChanged()。我想知道它是否是自动调用的,我的意思是每次位置更改时,还是在用户单击“获取当前位置”按钮时调用 如果有人有更好的主意,请告诉我 基本上,每次更改位置时都会调用onLocationChanged。 然而,在其中实现代码是个坏主意,您可以这样做 public class GPSTracker implements Locati
ArrayList
,每次我在该列表中保存位置数据的同时,我在每个点之间绘制一条多段线
我的问题是关于谷歌地图方法onLocationChanged()
。我想知道它是否是自动调用的,我的意思是每次位置更改时,还是在用户单击“获取当前位置”按钮时调用
如果有人有更好的主意,请告诉我 基本上,每次更改位置时都会调用onLocationChanged。 然而,在其中实现代码是个坏主意,您可以这样做
public class GPSTracker implements LocationListener{
private Location location ;
public Location getLocation(){
return this.location;
}
// .. code
@Override
public void onLocationChanged(Location location) {
this.location=location;
}
}
现在,在您的主要活动中,您可以通过创建GPSTracker对象来获取位置
那么像这样
GPSTracker=new GPSTracker(this);
gpsTracker.getLocation (); //this will provide you with longitude,latitude then you can control it with a thread or something like that, by calling getLongitude,getLatitude you can get the location paramter
请注意,构造函数将上下文作为参数,因此将活动的上下文传递给GPSTracker类
请检查以下内容因为您没有提供代码,我不知道您是否有单独的课程获取位置或在同一活动/课程中 我假设您希望在
Arraylist
中插入更新的位置,并希望创建一个多段线连接所有这些点<如果我是对的,下面是你能做的
- 在活动中创建一个
全局变量Arraylist
(如果您有一个单独的类来获取位置,那么在其中获取活动的引用,并使用该引用调用此方法。)ArrayList<LatLng> cordList = new ArrayList<>();
- 然后在活动中创建此方法
public void locationMarkers(Location location){ cordList.add(new LatLng(location.getLatitude(), location.getLongitude())); Polyline line =googleMap.addPolyline(newPolylineOptions().width(6).color(Color.GREEN)); line.setPoints(cordList); }
这样,您将在位置地图上有一条多段线
该多段线也是两个标记/位置之间的直线
如果您想让它在路上使用,请使用
HashMap
有许多相同的教程。你至少应该试过其中一些。可能是我知道如何获取当前位置的副本。这不是副本,谢谢
public void locationMarkers(Location location){
cordList.add(new LatLng(location.getLatitude(), location.getLongitude()));
Polyline line =googleMap.addPolyline(newPolylineOptions().width(6).color(Color.GREEN));
line.setPoints(cordList);
}