el asunto es mas complicado
in primer termino, que las coordinadas sean validas no quiere decir
que son correctas. el usuario podia haber teclado la longitud y la
latitud al reves, o sea, longitud primera, dando lugar posiblemente a
unas coordinadoras validas pero incorrectas.
Find local businesses, view maps and get driving directions in Google Maps.
www.google.com
Find local businesses, view maps and get driving directions in Google Maps.
www.google.com
las coordinadas son ambas validas, pero se refieren a puntos muy distintos (si estas preparando la maleta para
un viaje)
segundo, valores validos para la latitud son aproximadamente 85
hasta -85, y para la longitud 180 hasta -180. habra que incluirse
pruebas aptas.
tercero, el segundo formato para coordinadoras no es facil de
analilzar debido - entre otras razones - al uso de simbolos especiales y
la falta de un sencillo "-" para indicar oeste o sur (segun)
aqui tienes la regla (regex) que utilizo para ese formato. la hice en javascript, pero te dara una idea
como proceder:
/^(\d{1,3})\D ?(\d{1,2})\D ?([0-9.]+?)\D ?([NSEW]),? *?(\d{1,3})\D ?(\d{1,2})\D ?([0-9.]+?)\D ?([NSEW])/
pero el regex es lo de menos. ademas de sacar grados, minutos y segundos, tendras que
validar los datos (o sea posibles valores validos para grados, minutos y segundos). y manejando "[NSEW]" de
por si solo es un ejercicio interesante.
y despues de hacer esto, hay formulas para convertir grados + minutes + segundos a las coordinadas utilizadas
por una persona normal para localizar un punto en el mapa. nadie va a teclar este format (el simbolo para grados no
se encuentra en los teclados que yo he visto).