Need help on how to convert/read the GPS Coordinates...

please tell me on how to convert this data:

my data in longitude:12350.790066 and latitude:808.882390

and this is the code taken from the net…

#include “SIM900.h”
#include <SoftwareSerial.h>
#include “gps.h”

GPSGSM gps;

char lon[15];
char lat[15];
char alt[15];
char time[20];
char vel[15];
char msg1[5];
char msg2[5];

char stat;
char inSerial[20];
int i=0;
boolean started=false;

void setup()
{
//Serial connection.
Serial.begin(9600);
Serial.println(“GSM Shield testing.”);
if (gsm.begin(2400)){
Serial.println("\nstatus=READY");
gsm.forceON(); //To ensure that SIM908 is not only in charge mode
started=true;
}
else Serial.println("\nstatus=IDLE");

if(started){
//GPS attach
if (gps.attachGPS())
Serial.println(“status=GPSREADY”);
else Serial.println(“status=ERROR”);

delay(20000); //Time for fixing
stat=gps.getStat();
if(stat==1)
Serial.println(“NOT FIXED”);
else if(stat==0)
Serial.println(“GPS OFF”);
else if(stat==2)
Serial.println(“2D FIXED”);
else if(stat==3)
Serial.println(“3D FIXED”);
delay(5000);
//Get data from GPS
gps.getPar(lon,lat,alt,time,vel);
Serial.println(lon);
Serial.println(lat);
Serial.println(alt);
Serial.println(time);
Serial.println(vel);
}
};

void loop()
{
//Read for new byte on serial hardware,
//and write them on NewSoftSerial.
serialhwread();
//Read for new byte on NewSoftSerial.
serialswread();
};

void serialhwread(){
i=0;
if (Serial.available() > 0){
while (Serial.available() > 0) {
inSerial*=(Serial.read());*

  • delay(10);*
  • i++; *
  • }*

_ inSerial*=’\0’;_
_
if(!strcmp(inSerial,"/END")){_
Serial.println("");
_
inSerial[0]=0x1a;*

* inSerial[1]=’\0’;*
* gsm.SimpleWriteln(inSerial);*
* }*
* //Send a saved AT command using serial port.*
* if(!strcmp(inSerial,“TEST”)){*
* stat=gps.getStat();*
* if(stat==1)*
* Serial.println(“NOT FIXED”);*
* else if(stat==0)*
* Serial.println(“GPS OFF”);*
* else if(stat==2)*
* Serial.println(“2D FIXED”);*
* else if(stat==3)*
* Serial.println(“3D FIXED”);*
* }*
* //Read last message saved.*
* if(!strcmp(inSerial,“MSG”)){*
* Serial.println(msg1);*
* }*
* else{*
* Serial.println(inSerial);*
* gsm.SimpleWriteln(inSerial);*
* } *
* inSerial[0]=’\0’;*
* }*
}
void serialswread(){
* gsm.SimpleRead();*
}

Convert it to what?

So you are somewhere near ozamiz city ?

It's not rocket science.....

my data in longitude:12350.790066 and latitude:808.882390

The NMEA standard describes how these numbers work, so you should look that up.
For some obscure reason, these numbers mean:

123 degrees east longitude, plus 50.790066 minutes of longitude.

8 degrees north lattitude, plus 8.882390 minutes of lattitude

where a minute of lattitude is 1/60 of a degree.

Some people prefer degrees, minutes and seconds, in which case you would have 123 degrees, 50 minutes and about 48 seconds east.

And some people just prefer decimal fractions of degrees, in which case you would have 123.84 degrees east

@OP, do you remember any italics in your source code when you wrote it?

Now do you see why we ask you to post code in code tags?

I found the two solution, that I could not test yet

float conv_coords(float in_coords)
{
  //Initialize the location.
  float f = in_coords;
  // Get the first two digits by turning f into an integer, then doing an integer divide by 100;
  // firsttowdigits should be 77 at this point.
  int firsttwodigits = ((int)f)/100;                               //This assumes that f < 10000.
  float nexttwodigits = f - (float)(firsttwodigits*100);
  float theFinalAnswer = (float)(firsttwodigits + nexttwodigits/60.0);
  return theFinalAnswer;
}

// converts lat/long from Adafruit
// degree-minute format to decimal-degrees
// converts lat/long from Adafruit
// degree-minute format to decimal-degrees
double convertDegMinToDecDeg (float degMin) {
  double min = 0.0;
  double decDeg = 0.0;
 
  //get the minutes, fmod() requires double
  min = fmod((double)degMin, 100.0);
 
  //rebuild coordinates in decimal degrees
  degMin = (int) ( degMin / 100 );
  decDeg = degMin + ( min / 60 );
 
  return decDeg;
}

The proble is that nadasaker exemple, the lon and lat value are char array

gps.getPar(lon,lat,alt,time,vel);
   Serial.println(lon);
   Serial.println(lat);
   Serial.println(alt);
   Serial.println(time);
   Serial.println(vel);

How can we adapt the best of the two function in order to use the char lon and lat value?
Or can er convert char to float, and then, after the convertion float to char? :.