Как получить точную высоту над уровнем моря с помощью НАСА EGM96.java?

EGM96.java всегда выдает исключение ввода-вывода, когда я пытаюсь его запустить.

public static void main(String[] args) {
    // TODO Auto-generated method stub
    EGM96 egm = new EGM96("config/EGM96.dat");
    LatLon latlon = LatLon.fromDegrees(1.4, 103.9);
    double offset = egm.getOffset(latlon.getLatitude(),latlon.getLatitude());
}

Это приведет к исключению ввода-вывода.

Однако исключения IO исчезают, когда

public static void main(String[] args) {
    // TODO Auto-generated method stub
    EGM96 egm = new EGM96("config/EGM96.dat");
    LatLon latlon = LatLon.fromDegrees(1.4, 103.9);
    double offset = egm.getOffset(latlon.getLatitude(),latlon.getLatitude());
    double offset = egm.getOffset(latlon.getLatitude(),latlon.getLatitude());
}

Но я не могу иметь 2 переменные с одинаковыми именами. Если я попытался изменить одну из переменных, исключение ввода-вывода возвращается.

EGM96.java доступен по адресу http://worldwind31.arc.nasa.gov/svn/trunk/WorldWind/src/gov/nasa/worldwind/util/EGM96.java

1 ответ

Если вы получаете ошибку компилятора, это означает, что код EGM потенциально может вызвать исключение во время выполнения, и вы должны справиться с этим. Обычно это делается с помощью блока try-catch, где вы перехватываете исключение и выводите сообщение об ошибке или выполняете какую-либо другую пользовательскую обработку. Пожалуйста, проверьте это для деталей о том, как все это работает.

Другие вопросы по тегам