Entre los formatos para indicar una geolocalización tenemos el formato numérico (usado por Google Maps) y el formato de grados, minutos y segundos.
Ejemplos de ambos:
- Formato numérico: lat = 40.282229, lng = -3.488922
- Formato grados, minutos, segundos: 40° 16′ 56.0244» N, 3° 29′ 20.1192» W
En Internet hay varios convertidores de un formato a otro. Podéis usar por ejemplo latlong.net.
Convertir DMS a formato numérico
Transformar de DMS (Degrees Minutes Seconds) al formato numérico es sencillo:
lat = degrees + minutes / 60 + segundos / 3600
Seguro que te recuerda a como se convierte la hora.
El problema viene con los signos.
- Si la latitud es norte, el signo es positivo. Si es sur, negativo
- Si la longitud es este (East) es positivo, si no (West) negativo.
Funciones Javascript
Un código en Javascript vale más que mil palabras:
function dmsToLatLng(/* 40 deg 3' 24.36" N */ dms) {
var c = dms.match(/(\d+(\.\d+)?|[NSWE])/g);
return (Number(c[0]) + Number(c[1]) / 60 + Number(c[2]) / 3600) * (c[3] == "N" || c[3] == "E" ? 1 : -1);
}
function dmsPositionToLatLng(/* 0 deg 3' 24.36" N, 0 deg 5' 4.45" E */ dmsPosition) {
var c = dmsPosition.split(",");
return {
lat : Gallery.dmsToLatLng(c[0]),
lng : Gallery.dmsToLatLng(c[1])
};
}
Deja una respuesta