getAircraftLocation() - 获取Android中Lat / Lng的“NaN”(非数字)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了getAircraftLocation() - 获取Android中Lat / Lng的“NaN”(非数字)相关的知识,希望对你有一定的参考价值。

大家下午好,

在成功与无人机建立连接(在MainActivity.java中)(获取其模型名称并启用打开按钮)之后,我打开一个新的Activity(LocationActivity.java),我必须在那里显示飞机(型号:M210) Toast消息中的位置。

我在消息中得到的内容:Lat / Lng = NaN / NaN

private FlightController mFlightController;
private double mDroneLocationLat;
private double mDroneLocationLng;

在onCreate()方法中,我创建了一个Broadcast接收器:

    IntentFilter filter = new IntentFilter();
    filter.addAction(FPVDemoApplication.FLAG_CONNECTION_CHANGE);
    registerReceiver(mReceiver, filter);

FPVDemoApplication是一个java文件,其中DJI构造函数编写了一些代码+创建了一个广播发送者。你可以在Github上找到它。

然后 :

protected BroadcastReceiver mReceiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        onProductConnectionChange();
    }
};

private void onProductConnectionChange()
{
    initFlightController();
}

在initFlightController()方法中,我使用以下代码来获取飞机位置:getFlightController()和getAircraftLocation()。

BaseProduct product = FPVDemoApplication.getProductInstance();

if (product != null && product.isConnected()) {
    if (product instanceof Aircraft) {
        mFlightController = ((Aircraft) product).getFlightController();
    }
}

        // Getting Aircraft
        // ================
        if (mFlightController != null) {
            mFlightController.setStateCallback(
                    new FlightControllerState.Callback() {
                        @Override
                        public void onUpdate(FlightControllerState
                                                     djiFlightControllerCurrentState) {
                            mDroneLocationLat = djiFlightControllerCurrentState.getAircraftLocation().getLatitude();
                            mDroneLocationLng = djiFlightControllerCurrentState.getAircraftLocation().getLongitude();
                        }
                    }
            );
        }

-

问题是:

  1. 我是否忘记使用某些方法来获得飞机位置?
  2. 我需要哪些权限才能访问Manifest.xml或其他java文件中有关Aircraft位置的信息?
  3. 由于我的飞机在办公室里,我是否必须到外面去找它的位置(根据this thread)?

这是结构树:

enter image description here

答案

我找到了解决方案:这是非常愚蠢的。<!我忘了在无人机上安装GPS天线,然后到外面去获得更好的信号电平。 getAircraftLocation()是正确的,但是如果你使用这个方法得到LEVEL_0(djiFlightControllerCurrentState.getGPSSignalLevel())你将无法获得无人机位置

以上是关于getAircraftLocation() - 获取Android中Lat / Lng的“NaN”(非数字)的主要内容,如果未能解决你的问题,请参考以下文章

RPC街舞获邀盘州市街舞比赛分别取得了...

Spotify API 只获得了一些设备,但我的手机获得了所有设备

帮助您了解什么是运营商大数据获客

AI写作《如何利用 RPA 实现自动化获客?》

七牛云实力再获认可获“2021卓越竞争力云计算先锋企业”奖

国家“十三五”重点出版规划获批