- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在从我的 GPS 实现中获取正确的“正在使用的卫星”和“正在查看的卫星”整数时异常困难。我已经查看了许多相关的 Stackoverflow 线程,但没有立即得到启发。以下是我到目前为止“应该”工作的内容,但事实并非如此。我已经从不同的角度重建了几次,但没有得到正在使用的卫星数量或可见卫星的数量。提前致谢...
public class GpsData extends Service implements LocationListener {
private GpsStatus mGpsStatus;
private final Context mContext;
boolean isGPSEnabled = false; // flag for GPS status
boolean isNetworkEnabled = false; // flag for network status
boolean canGetLocation = false; // flag for GPS status
Location location; // location
double dLatitude, dAltitude, dLongitude, dAccuracy, dSpeed, dSats;
float fAccuracy, fSpeed;
long lSatTime; // satellite time
String szSignalSource, szAltitude, szAccuracy, szSpeed;
public String szSatellitesInView;
public String szSatellitesInUse;
public static String szSatTime;
private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 0; // 0 meters
private static final long MIN_TIME_BW_UPDATES = 1000; //1 sec
protected LocationManager locationManager;
protected GpsListener gpsListener = new GpsListener();
public GpsData(Context context) {
this.mContext = context;
getLocation();
locationManager.addGpsStatusListener(gpsListener);
}
class GpsListener implements GpsStatus.Listener{
@Override
public void onGpsStatusChanged(int event) {
int iCountInView = 0;
int iCountInUse = 0;
mGpsStatus = locationManager.getGpsStatus(mGpsStatus);
Iterable<GpsSatellite> satellites = mGpsStatus.getSatellites();
if (satellites != null) {
for (GpsSatellite gpsSatellite : satellites) {
iCountInView++;
if (gpsSatellite.usedInFix()) {
iCountInUse++;
}
}
}
{
{
szSatellitesInView = String.valueOf(iCountInView);
szSatellitesInUse = String.valueOf(iCountInUse);
}
}
public Location getLocation() {
try {
locationManager = (LocationManager) mContext.getSystemService(LOCATION_SERVICE);
// getting GPS satellite status
isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
// getting cellular network status
isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!isGPSEnabled && !isNetworkEnabled) {
// no network provider is enabled
} else {
this.canGetLocation = true;
// First get location from Network Provider
if (isNetworkEnabled) {
locationManager.addGpsStatusListener(gpsListener);//needed?
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
Log.d("Cell tower", "Cell tower");
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
dLatitude = location.getLatitude();
dLongitude = location.getLongitude();
lSatTime = location.getTime();
}
}
}
// if GPS Enabled get lat/long using GPS Services
if (isGPSEnabled) {
if (location == null) {
locationManager.addGpsStatusListener(gpsListener);
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
Log.d("GPS Enabled", "GPS Enabled");
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
dLatitude = location.getLatitude();
dLongitude = location.getLongitude();
lSatTime = location.getTime();
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return location;
}
最佳答案
明白了。
public class GpsData extends Service implements LocationListener {
boolean isGPSEnabled = false; // flag for GPS satellite status
boolean isNetworkEnabled = false; // flag for cellular network status
boolean canGetLocation = false; // flag for either cellular or satellite status
private GpsStatus mGpsStatus;
private final Context mContext;
protected LocationManager locationManager;
protected GpsListener gpsListener = new GpsListener();
Location location; // location
double dLatitude, dAltitude, dLongitude, dAccuracy, dSpeed, dSats;
float fAccuracy, fSpeed;
long lSatTime; // satellite time
String szSignalSource, szAltitude, szAccuracy, szSpeed;
public String szSatellitesInUse, szSatellitesInView;
public static String szSatTime;
private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 0; // 0 meters
private static final long MIN_TIME_BW_UPDATES = 1000; //1 second
public GpsData(Context context) {
this.mContext = context;
getLocation();
}
class GpsListener implements GpsStatus.Listener{
@Override
public void onGpsStatusChanged(int event) {
}
}
public Location getLocation() {
try {
locationManager = (LocationManager) mContext.getSystemService(LOCATION_SERVICE);
isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);// getting GPS satellite status
isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);// getting cellular network status
if (!isGPSEnabled && !isNetworkEnabled) {
} else {
this.canGetLocation = true;
if (isNetworkEnabled) {//GPS is enabled, getting lat/long via cellular towers
locationManager.addGpsStatusListener(gpsListener);//inserted new
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,MIN_TIME_BW_UPDATES,MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
Log.d("Cell tower", "Cell tower");
if (locationManager != null) {
location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
szAltitude = " NA (using cell towers)";
szSatellitesInView = " NA (using cell towers)";
szSatellitesInUse = " NA (using cell towers)";
}
}
}
if (isGPSEnabled) {//GPS is enabled, gettoing lat/long via satellite
if (location == null) {
locationManager.addGpsStatusListener(gpsListener);//inserted new
locationManager.getGpsStatus(null);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,MIN_TIME_BW_UPDATES,MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
Log.d("GPS Enabled", "GPS Enabled");
if (locationManager != null) {
location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
dAltitude = location.getAltitude();
szAltitude = String.valueOf(dAltitude);
/**************************************************************
* Provides a count of satellites in view, and satellites in use
**************************************************************/
mGpsStatus = locationManager.getGpsStatus(mGpsStatus);
Iterable<GpsSatellite> satellites = mGpsStatus.getSatellites();
int iTempCountInView = 0;
int iTempCountInUse = 0;
if (satellites != null) {
for (GpsSatellite gpsSatellite : satellites) {
iTempCountInView++;
if (gpsSatellite.usedInFix()) {
iTempCountInUse++;
}
}
}
szSatellitesInView = String.valueOf(iTempCountInView);
szSatellitesInUse = String.valueOf(iTempCountInUse);
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return location;
}
关于android - 在 Android 中获取 "satellites in view"和 "satellites in use"计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26148235/
我在从我的 GPS 实现中获取正确的“正在使用的卫星”和“正在查看的卫星”整数时异常困难。我已经查看了许多相关的 Stackoverflow 线程,但没有立即得到启发。以下是我到目前为止“应该”工作的
Im trying to understand what differences are there between this products. Can someone explain me
我已经搜索了大量的 PyEphem 网页,下载了代码,并调查了对象,但我没有找到一种方法来获得某个名义惯性坐标系中地球卫星的地心直角坐标。我错过了一些明显的东西吗?我正在寻找“传统”的 x、y、z 和
是否可以为不同的 map 类型id添加自己的样式? 目前,当为谷歌地图创建样式时,我无法在与 ROADMAP 不同的 map 类型上显示它们。 我想从 map 类型 SATELLITE 或 HYBRI
反对我不这样做的建议,我必须建立一个表格,我们可以将其交给我们的附属公司并将他们放在他们的网站上 - 一旦它离开我,我就无法控制任何事情,我希望这方面的专业知识社区可以为我提供解决此问题的替代方法。我
我正在尝试绘制一个圆锥体,连接到 Matlab 中的球体。我在球体 [x2,y2,z2] 之外有一个点 [x1,y1,z1],半径为 R,我想要它成为圆锥体的顶部,由切线创建。 在这些图片上你可以看到
我知道有几个关于 satellite Assembly 的问题,但我在尝试实现它们时仍然遇到一些麻烦 My Goal is to separate each culture in a single a
我想知道是否有人可以分享一些 Redhat Satellite 服务器上的安装步骤。我尝试在 Google 上查看,但找不到相关内容。 这将是非常有帮助的。 提前致谢,苏曼 最佳答案 真的吗? Goo
我有一个带有 javascript 的谷歌地图,我想在放大 100%(完全缩放)后将模式 map 从 map View 更改为卫星 View ,如何在以下 javascript 代码中完成? 演示:
我想使用satellite.js的SGP4/SDP4计算用于转换 TLE 的库字符串并最终创建卫星轨道图。 问题是如何将此库添加到我的项目中? 我已经使用 NPM 安装了 Satellite.js,但
我正在使用 Cesium Earth 开发卫星跟踪应用程序。 现在,卫星坐标在地球固定系统中并且工作正常。 但是,我还需要在 ECI 坐标系中显示它们,为此我必须让地球旋转。 怎么做? 最佳答案 我首
我想通过菜单按钮在街景 View 和卫星 View 之间切换我的 GoogleMaps View 。 这是我的代码: public boolean onCreateOptionsMenu(Menu m
我用 android 获得了 NMEA 字符串。但我不知道如何才能获得正在使用的卫星编号? 最佳答案 您需要从您的 nmea 字符串中读取 GGA 字段。它为您提供被跟踪的卫星数量。 GGA - 提供
我有一个使用卫星 DLL 的 MFC 应用程序以支持多语言。我正在使用 Visual Studio 2010。 我可以毫无问题地更改应用程序核心部分的语言。当我尝试加载包含“特殊”MFC 控件(CMF
嗯,这就是问题所在,我认为可以执行类似 map.setSatellite(true); 的操作,但在 OSMdroid 中是不可能的。 还有一个麻烦就是 map 是否可以下载,因为我需要离线工作,老板
我正在设置新的 Tensorflow Object Detection API在大面积的卫星图像中寻找小物体。它工作得很好 - 它找到了我想要的所有 10 个对象,但我也得到了 50-100 个误报
我向我的位置管理器添加了一个 gps 状态监听器,以便查看我何时获得第一个修复。 当我收到 GPS_EVENT_FIRST_FIX 时,我会遍历所有卫星,但为什么在定位中没有使用它们? (usedIn
我是 Google 地球引擎的新手,正试图获取整个刚果民主共和国的陆地卫星图像。该项目涉及一些计算机视觉和图像分割,因此我需要获得尽可能高的分辨率。 我有一些代码是我从地球引擎开发的,用于根据下面发布
我的 centos 7 已损坏。我想安装新的centos7。当我运行 rpm -q kernel 时。它给出了以下结果 kernel-3.10.0-123.el7.x86_64 kernel-3.10
我是一名优秀的程序员,十分优秀!