У меня есть текстовый файл, содержащий рамки NMEA. Я получаю широту и долготу $ GPGGA и $ GPRMC кадров. Для этой части это было хорошо.Невозможно повлиять на значения в простой таблице Double [], которая всегда равна нулю
Теперь я хотел бы преобразовать широту и долготу в десятичные градусы. Проблема возникает, когда я пытаюсь повлиять на значения до Double[]coordinatestoconvert
. Это всегда значение null.
Это как эта ошибка действительно идиот, но я оборачиваюсь все это утром для такой глупости ...
Может кто-то мне помочь, пожалуйста?
Вот методы, которые я использую:
public String readText(String filepath) throws Exception
{
String text="";
try
{
InputStream inputs=new FileInputStream(filepath);
InputStreamReader inputsreader=new InputStreamReader(inputs);
BufferedReader buffer=new BufferedReader(inputsreader);
String line;
while((line=buffer.readLine())!=null)
{
/* Server send to Client the full line. Then Client will select
* which data will be retrieve */
String[]splitedline=line.split(",");
Double[]decimalcoordinates=retrieveCoordinates(splitedline);
messagearea.append(decimalcoordinates[0].toString()+","+decimalcoordinates[1].toString());
tcpserver.sendMessage(decimalcoordinates[0].toString()+","+decimalcoordinates[1].toString());
}
buffer.close();
}
catch(FileNotFoundException e)
{
System.out.println(e);
}
return text;
}
public Double[] retrieveCoordinates(String[] splitedline)
{
Double[]coordinates=null;
if((splitedline[0]=="$GPGGA") || (splitedline[0]=="$GPRMC"))
{
Double[]coordinatestoconvert=null;
// coordinatestoconvert is always null here
coordinatestoconvert[0]=Double.parseDouble(splitedline[3]);
coordinatestoconvert[1]=Double.parseDouble(splitedline[5]);
coordinates=convertNmeaToDecimal(coordinatestoconvert);
}
return coordinates;
}
public Double[] convertNmeaToDecimal(Double[] coordinatestoconvert)
{
Double[]coordinatesconverted=null;
for(int i=0;i<2;i++)
{
Double degrees=coordinatestoconvert[i]/100;
Double time=coordinatestoconvert[i]-degrees;
coordinatesconverted[i]=degrees+time/60;
}
return coordinatesconverted;
}
использовать '.equals()' метод проверки строки. ** НЕ используйте ** == '. –