Avatar billede jps6kb Novice
13. september 2013 - 23:24 Der er 3 kommentarer og
1 løsning

Afstanden mellem to GPS-koordinater

Hej,

Jeg har brug for, at udregne eller finde afstanden (fugleflugt) mellem to sæt koordinater.

F.eks.

Lang. 8,710555, Long. 8215,51291095292
og
Lang. 8,702222, Long. 8216,18631569868

Er der nogen der har en idé?
Jeg henter i forvejen adresse-oplysninger og andet via Google. F.eks. via:
http://maps.googleapis.com/maps/api/geocode/json?address=Noerregade+26+6740+Bramming+Danmark&sensor=true
Avatar billede arne_v Ekspert
14. september 2013 - 00:00 #1
Avatar billede jps6kb Novice
14. september 2013 - 00:22 #2
Jeg har faktisk fundet den side - og uden at den giver voldsomt meget mening for mig, fandt jeg et eksempel, som er det seneste jeg har arbejdet ud fra:

        static double distance = -1;
        public static Project GetNearestProject(SiteUser user, double lat1, double lng1)
        {
            distance = -1;
            Project nearest_project = new Project();
            double nearest_distance = 999999999;

            double e = (3.1415926538 * lat1 / 180);
            double f = (3.1415926538 * lng1 / 180);


            foreach (Project p in user.Projects.Where(x => x.cancelled == null && x.deleted == null))
            {
                double g = (3.1415926538 * double.Parse(p.lat) / 180);
                double h = (3.1415926538 * double.Parse(p.lng) / 180);
                double i = (Math.Cos(e) * Math.Cos(g) * Math.Cos(f) * Math.Cos(h) + Math.Cos(e) * Math.Sin(f) * Math.Cos(g) * Math.Sin(h) + Math.Sin(e) * Math.Sin(g));
                double j = (Math.Acos(i));
                double k = (6371 * j);

                if (k < nearest_distance)
                {
                    nearest_distance = k;
                    nearest_project = p;
                }
            }
            distance = nearest_distance;
            return nearest_project;
        }


Jeg har dog ikke held med, at få korrekte data ud.
Jeg sammenligner koordinater på et Project-object med koordinater på fotos.

Jeg henter den geografiske adresse for koordinaterne på billedet og kan f.eks. se, at den hedder "Nygårdsvej 1, 67000 Esbjerg". På et af projekterne har jeg også koordinater som er hentet fra Google ud fra samme adresse, men alligevel vælger den et andet projekt som det nærmeste, selvom det ligger 17km væk.
Avatar billede jps6kb Novice
14. september 2013 - 01:07 #3
Arrrh... kender du det, at klokken lige pludselig er over midnat og man opdager, at de data man henter fra Google, at punktum i stedet for komma i koordinaterne? :)

Smid et svar arne - så takker jeg for indsatsen.
Avatar billede arne_v Ekspert
14. september 2013 - 03:16 #4
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester