【发布时间】:2018-11-05 14:26:05
【问题描述】:
我已成功使用公共 void onMapClick(LatLng point) 在 Google 地图上添加标记。
我将 "point" 的值存储到 private LatLng mLatLngHOME = point; (将用于 initFlightController() 方法设置 Home 位置)。
private void initFlightController() {
if (isFlightControllerSupported()) {
mFlightController = ((Aircraft) DJISDKManager.getInstance().getProduct()).getFlightController();
mFlightController.setStateCallback(new FlightControllerState.Callback() {
@Override
public void onUpdate(FlightControllerState djiFlightControllerCurrentState) {
djiFlightControllerCurrentState.setHomeLocation(new LocationCoordinate2D(mLatLngHOME.latitude, mLatLngHOME.longitude));
}
});
}
}
private boolean isFlightControllerSupported() {
return DJISDKManager.getInstance().getProduct() != null &&
DJISDKManager.getInstance().getProduct() instanceof Aircraft &&
((Aircraft) DJISDKManager.getInstance().getProduct()).getFlightController() != null;
}
使用 DJI 演示应用程序 (DJIDemoApplication.java & MApplication.java),我在 MainActivity 中创建了一个广播接收器 .java.
在广播中,我调用了一个方法 updateFlightController() 来显示一些 Toast 消息:
private void updateFlightController() {
if (isFlightControllerSupported()) {
mFlightController = ((Aircraft) DJISDKManager.getInstance().getProduct()).getFlightController();
mFlightController.setStateCallback(new FlightControllerState.Callback() {
@Override
public void onUpdate(FlightControllerState djiFlightControllerCurrentState) {
// TEST
showToast("mLatLngHOME = " + mLatLngHOME);
showToast("Latitude / Longitude = " + mLatLngHOME.latitude + " / " + mLatLngHOME.longitude);
}
});
}
}
问题是,它们显示 mLatLngHOME = null 和 Latitude / Longitude = NaN / NaN。
好像在 updateFlightController() 方法中,它停留在一个循环中 并保留一些旧值。
我错过了什么吗?
【问题讨论】:
标签: java android location dji-sdk