Dzieńdobry.
Borykam się z aplikacją obliczającą odległość pomiędzy dwoma punktami (wg współrzędnych).

Znalazłem chyba gotowe rozwiązanie. Niestety jest napisane w JavaScript i nie potrafię przepisać tego do Pascala
http://www.barattalo.it/2009/12/26/decimal-degrees-conversion-and-distance-of-two-points-on-google-map/

function convertDecDeg(v,tipo) {
    if (!tipo) tipo='N';
    var deg;
    deg = v;
    if (!deg){
        return "";
    } else if (deg > 180 || deg < 0){
        // convert coordinate from north to south or east to west if wrong tipo
        return convertDecDeg(-v,(tipo=='N'?'S': (tipo=='E'?'W':tipo) ));
    } else {
        var gpsdeg = parseInt(deg);
        var remainder = deg - (gpsdeg * 1.0);
        var gpsmin = remainder * 60.0;
        var D = gpsdeg;
        var M = parseInt(gpsmin);
        var remainder2 = gpsmin - (parseInt(gpsmin)*1.0);
        var S = parseInt(remainder2*60.0);
        return D+"&deg; "+M+"' "+S+"'' "+tipo;
    }
}

function distance(lat1,lon1,lat2,lon2) {
    var R = 6371; // km (change this constant to get miles)
    var dLat = (lat2-lat1) * Math.PI / 180;
    var dLon = (lon2-lon1) * Math.PI / 180;
    var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
        Math.cos(lat1 * Math.PI / 180 ) * Math.cos(lat2 * Math.PI / 180 ) *
        Math.sin(dLon/2) * Math.sin(dLon/2);
    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
    var d = R * c;
    if (d>1) return Math.round(d)+"km";
    else if (d<=1) return Math.round(d*1000)+"m";
    return d;
}

O ile druga funkcja jest bardziej zrozumiała, o tyle poległem na pierwszej.
Czy jakaś dobra dusza orientująca się w JavaScript i Delphi/Pascal mogłaby spróbować mi pomóc?