lunes, 18 de junio de 2012

Eppur si muove

    Durante estas semanas he estado leyendo mucho y haciendo mis primeros pinitos con esto del Android. También me he leido un buen libro sobre Java del que ya hablaré - o no -. Incluso he estado jugando con C# sobre Mono. El asunto es que algo se ha movido. He de reconocer que tras diez años como programador en VB6, me encuentro inquieto. Junto a la pequeña satisfacción de ir avanzando, siento vértigo ante lo que intuyo que tengo por delante. Y más que miedo, es ansiedad por avanzar. Estoy maravillado con conceptos como el de interfaz, por poner un ejemplo. Supongo que cada cosa tiene un momento, y éste es el mio para apreciar las nociones de la programación orientada a objetos. Y de evolucionar como profesional. Estas semanas he recordado cuánto he disfrutado programando. Y vuelve a divertirme. Lo estoy notando en mi curva de aprendizaje, y en mi día a día en el trabajo.

    Y como el movimiento se demuestra andando, y el cariño cocinando, allá va un snippet de código que ya forma parte del esqueleto de la aplicación de los precios del combustible.



------------------------------------------------------------ Doblar por aquí ------------------------------------------------------------

package zoom.preciogasolina;

import android.util.Log;

public class Util {
    private final static String TAG="Util";
   
    public static Double getDistance(float lat1, float lon1, float lat2, float lon2) {
        /** Calcula distancia entre dos puntos de la superficie de una esfera */
        /* Fuente: http://www.tutiempo.net/p/distancias/calcular_distancias.html */
        Log.d(TAG,
                "getDistance: lat1=" + lat1 +  
                "; lon1=" + lon1 +
                "; lat2=" + lat2 +
                "; lon2=" + lon2);

        final double degtorad = 0.01745329;
        final double radtodeg = 57.29577951;
        double dlong = (lon1 - lon2);
        double dvalue = (Math.sin(lat1 * degtorad)
                * Math.sin(lat2 * degtorad))
                + (Math.cos(lat1 * degtorad)
                * Math.cos(lat2 * degtorad)
                * Math.cos(dlong * degtorad));
        double d = Math.acos(dvalue) * radtodeg;
        return d * 111.302;
    }

    public static float toFloat(CharSequence c) {
        try {
            float f = Float.valueOf(c.toString()).floatValue();
            Log.d(TAG, "toFloat = " +f);
            return f;
        } catch(NumberFormatException e) {
            Log.e(TAG, "toFloat:" + e.getMessage());
            return 0;
        }
    }
}

------------------------------------------------------------ Doblar por aquí ------------------------------------------------------------

No hay comentarios:

Publicar un comentario