



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Programacio, Profesor: Maria Ferrer, Carrera: Enginyeria Informàtica, Universidad: URV
Tipo: Apuntes
1 / 5
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




Google Maps va posar a l’abast del gran públic el fet de poder ubicar en un mapa la posició on es troba un servei, un usuari, ... Avui en dia ens trobem amb moltes aplicacions que fan ús d’aquesta eina i ens ajuden a localitzar, a partir de la nostra posició, els serveis d’un cert tipus que tenim més propers.
Una forma de representar la posició d’una localització geogràfica són les coordenades geogràfiques de longitud i latitud. Tot sistema de coordenades ha de tenir un origen i uns eixos. En el cas de la longitud, l’origen és el meridià de Greenwich (longitud 0) i per a la latitud, l’origen és l’equador (latitud 0). La longitud és positiva des del meridià cap a l’est i la latitud és positiva en l’hemisferi nord. Les següents imatges poden ajudar a clarificar el sistema de representació de la informació.
La latitud i la longitud es poden expressar utilitzant graus, minuts i segons, o bé, en graus decimals. En la notació dels graus decimals la longitud pot tenir valors des de [-180, 180] (els dos extrems representen el mateix punt) i la latitud pot tenir valors en el rang [-90, 90]. En la notació que s’utilitza graus, minuts i segons sempre es mostren les dades amb valors positius i s’afegeix a la latitud si és un valor del Nord o del Sud, i per a la longitud si és de l’Est o de l’Oest.
Donem alguns exemples per a clarificar les notacions.
Lloc Notació graus, minuts i segons Latitud Longitud LatitudNotació graus decimals Longitud
ETSE 41º 7 ‘ 32.89” N 1º 14’ 18.90” E 41.1258048 1. La Corunya 43º 21’ 42.74” N 8º 24’ 45.66” O 43.3618741 -8. Johannesburg 26º 10’ 17.47” S 28º 2’ 24.08” E -26.1715215 28. Buenos Aires 34º 36’ 57.06” S 58º 25’ 59.88” O -34.6158527 -58.
Per a traduir el valor d’una notació a l’altre tenim les següents fórmules:
(1) valor decimal = graus + (minuts/60) + (segons/3600)
(2) tenint en compte que [ ] representa la part entera,
graus = [valor decimal]
minuts = [ (valor decimal – graus) *60 ]
segons = ( ( (valor decimal – graus) *60 ) – minuts ) * 60
Hem de dissenyar també la classe que conté el main i que crearà instàncies de la classe servei i validarà el seu funcionament. Hem de tenir especial cura en definir diferents jocs de prova que utilitzin tots els mètodes cobrint els diferents casos que es poden donar, per tal de comprovar que el programa funciona correctament en tots els casos. Per fer les proves no cal llegir la informació de teclat sinó que els valors es poden donar als mètodes directament dins el codi del main. De cada prova que feu, heu de (afegiu comentaris en el mateix codi del main):
Per a calcular la distància entre dos punts sobre l’esfera terrestre no podem utilitzar la fórmula de la distància sobre un pla, hem de tenir en compte la curvatura de la terra. La fórmula de Harversine resol el problema.
distància_punts_terrestres (P1, P2 ) = R * 2 * atan2(sqrt(a), sqrt(1-a))
on R = radi de la terra (l’aproximem pel valor de 6378.137)
a = sin^2 (∆lat/2) + cos(lat1) * cos(lat2) * sin^2 (∆long/2)
on ∆lat = (lat2 – lat1) i ∆long =( long2 – long1);
Per a entendre la fórmula hem de tenir en compte un seguit d’aspectes. El punt de partida són les coordenades de longitud i latitud dels dos punts. En el nostre cas els tenim guardats en graus decimals. La fórmula, però, espera tenir aquests valors en radiants i per tant el primer que hem de fer és fer-ne la traducció. Per a fer-ho, recordeu la fórmula:
valor_en_radiants = valor_en_graus * π / 180;
Anomenarem les coordenades dels punts de partida ja en radiants segons la següent notació (i és el que teniu en les fórmules): P1 (lat1, long1) P2 (lat2, long2)