Da perfezionare ma...
codice:
String result = "";
// input
double lat = 41.3015823;
double lng = 13.0275758;
DecimalFormat df = new DecimalFormat("#.00");
double latValDeg, latValMin, lngValDeg, lngValMin;
lat = Math.abs(lat);
latValDeg = Math.floor(lat);
result = String.valueOf((int) latValDeg) + "º";
latValMin = Math.floor((lat - latValDeg) * 60);
result += String.valueOf((int) latValMin) + "'";
long round = Math.round((lat - latValDeg - latValMin / 60) * 3600 * 1000);
double d = (new Long(round)).doubleValue() / 1000;
result += df.format(d) + '"' + " " + ((lat >= 0) ? "N" : "S");
result += " ";
lng = Math.abs(lng);
lngValDeg = Math.floor(lng);
result += String.valueOf((int) lngValDeg) + "º";
lngValMin = Math.floor((lng - lngValDeg) * 60);
result += String.valueOf((int) lngValMin) + "'";
round = Math.round((lng - lngValDeg - lngValMin / 60) * 3600 * 1000);
d = (new Long(round)).doubleValue() / 1000;
result += df.format(d) + '"' + " " + ((lng >= 0) ? "E" : "W");
result sarà = 41º18'5,70" N 13º1'39,27" E