gpt4 book ai didi

安卓,全局定位系统。每秒获取位置

转载 作者:行者123 更新时间:2023-11-29 18:08:00 26 4
gpt4 key购买 nike

我有这个:

public class GpsUpdate extends Observable implements LocationListener  {

private int x_position;
private int y_position;
private float currentAccuracy;
public GpsUpdate(Observer observer){
addObserver(observer);
}


@Override
public void onLocationChanged(Location location) {
int lat = (int) (location.getLatitude() * 1E6);
int lng = (int) (location.getLongitude() * 1E6);
setAccuracy(location.getAccuracy());
setX_position(lat);
setY_position(lng);
setChanged();
notifyObservers();



}
@Override
public void onProviderDisabled(String provider) {
}


@Override
public void onProviderEnabled(String provider) {
}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}

public int getX_position() {
return x_position;
}
public void setX_position(int x_position) {
this.x_position = x_position;

}
public int getY_position() {
return y_position;

}
public void setY_position(int y_position) {
this.y_position = y_position;
}

public void setAccuracy(float currentAccuracy) {
this.currentAccuracy = currentAccuracy;
}


public float getAccuracy(){
return currentAccuracy;
}

此方法 (onLocationChanged()) 通知其他类中的另一个方法 (update()) 位置已更改,但我需要收集所有坐标,即使当前与之前的坐标相同。

_GPSUPDATE = new GpsUpdate(this);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, _GPSUPDATE);

@Override
public void update(Observable observable, Object data) {
xCurrent = _GPSUPDATE.getX_position();
yCurrent = _GPSUPDATE.getY_position();
.....
}

那么,我必须添加/更改什么才能每秒获得位置?

最佳答案

这是相当糟糕的方法。即使您需要每秒存储一次位置,也要重新定义您的应用程序逻辑以存储时间戳 位置。这足够了,因为(假设 T 是以秒为单位的增量时间)如果在 T=0 您收到并存储了 locationA,在 T =2 你收到并存储了 locationB 那么如果你想知道 T=1 的位置然后没有看到明确的记录你知道没有变化当时的位置,所以很明显你的位置等于最后存储的位置最近的 T,在这种情况下 T=1 你的位置(仍然)是 locationA 因为它自 T=0 以来没有改变。这是更好的方法,可以为您节省大量存储空间。如果您将其存储在数据库中,那么获得正确的结果也很简单 - 只需搜索时间戳小于或等于所需的条目,按时间戳 desc 排序,限制为 1。

关于安卓,全局定位系统。每秒获取位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12371380/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com