SIM908 GPS giving wrong position

There is a bug in the code.

When the code converts the lat/lon data they use:
Serial.println(Datatransfer(lon,5)/100.0,7);

But the data is in DD mm. dddd

So in order to convert it to DD. dddddd
You need to do (DD+mm. dddd/60)

I checked manually and the result is good.
Will update the code later.

Hope this helps.