android内存溢出 gps,android
我正在测试一个记录位置的Android应用程序(lat / long / alt)。 我在运行Android 2.2.1的三星GTS5830手机上运行该应用程序
我在这里和那里读到GPS高度通常不正确,因为地球不是完美的球形。 例如,在我的位置, 大地水准面的高度是52米。
我的理解是这个高度将从“纯”GPS高度中减去。 这对我的位置有意义:
- altitude from GPS phone: 535 m
- geoid altitude: 52 m
- altitude from phone's GPS minus geoid height: 482m
- correct atlitude: 478 m
482足够接近真实的东西,让我在徒步旅行时跟踪海拔
以上公式的GPS高度减去大地水准面的高度是否正确?
我是否正确地假设在返回GPS高度时android没有考虑大地水准面的高度?
如果以上情况属实,是否适用于所有版本的Android?
这是我用来获取GPS坐标的代码:
public class HelloAndroid extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d("main", "onCreate");
setupGps();
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
LocationListener locationListener;
LocationManager lm;
void setupGps() {
Log.d("gps", "Setting up GPS...");
locationListener = new MyLocationListener();
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 20000, 5,
locationListener);
Log.d("gps",
"GPS supports altitude: "
+ lm.getProvider(LocationManager.GPS_PROVIDER)
.supportsAltitude());
Log.d("gps", "Finished setting up GPS.");
}
static class MyLocationListener implements LocationListener {
public void onLocationChanged(Location location) {
Log.d("gps", "long: " + location.getLongitude() + ", lat: "
+ location.getLatitude() + ", alt: "
+ location.getAltitude());
}
}
}
android内存溢出 gps,android
我正在测试一个记录位置的Android应用程序(lat / long / alt)。 我在运行Android 2.2.1的三星GTS5830手机上运行该应用程序
我在这里和那里读到GPS高度通常不正确,因为地球不是完美的球形。 例如,在我的位置, 大地水准面的高度是52米。
我的理解是这个高度将从“纯”GPS高度中减去。 这对我的位置有意义:
- altitude from GPS phone: 535 m
- geoid altitude: 52 m
- altitude from phone's GPS minus geoid height: 482m
- correct atlitude: 478 m
482足够接近真实的东西,让我在徒步旅行时跟踪海拔
以上公式的GPS高度减去大地水准面的高度是否正确?
我是否正确地假设在返回GPS高度时android没有考虑大地水准面的高度?
如果以上情况属实,是否适用于所有版本的Android?
这是我用来获取GPS坐标的代码:
public class HelloAndroid extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d("main", "onCreate");
setupGps();
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
LocationListener locationListener;
LocationManager lm;
void setupGps() {
Log.d("gps", "Setting up GPS...");
locationListener = new MyLocationListener();
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 20000, 5,
locationListener);
Log.d("gps",
"GPS supports altitude: "
+ lm.getProvider(LocationManager.GPS_PROVIDER)
.supportsAltitude());
Log.d("gps", "Finished setting up GPS.");
}
static class MyLocationListener implements LocationListener {
public void onLocationChanged(Location location) {
Log.d("gps", "long: " + location.getLongitude() + ", lat: "
+ location.getLatitude() + ", alt: "
+ location.getAltitude());
}
}
}