Avatar billede beelance Praktikant
15. januar 2009 - 16:56 Der er 9 kommentarer

udregne afstand mellem postumre

hej jeg ved dette spørgsmål har været oppe at vende før men har ikke kunnet finde nogen løsning derigennem.

jeg har brug for at indbygge en funktion i et script der hurtigt kan finde afstanden fra postnummer X til 30 postnumre allerede i min DB. jeg har brug for dette så systemet kan vælge den person der er tættest på postnummer X!
håber det giver mening. har læst om en løsning der bruger google maps API men ved ikke hvordan det fungerer, og hvis, og det så vil tage lang tid at finde 30 afstande?
Avatar billede majbom Novice
15. januar 2009 - 20:09 #1
Avatar billede olebole Juniormester
15. januar 2009 - 22:09 #2
<ole>

Hvad er det, du spørger om? Der kan være uendelig mange forskellige afstande mellem 2100 og 2200 ... ligefra 0,1 mm til adskillige kilometer. Det kommer helt anpå, hvor indenfor postnummerområdet du befinder dig.

Du kan enddog ofte være længere væk i et nabopostnummer - end hvis der ligger et postnummerområde imellem. Totalt ged i den vil der naturligvis gå i Indre København, på Vesterbro og på Christianshavn, hvor hver gade har sit eget postnummer (dog ikke overalt på Vesterbro)  =)

/mvh
</bole>
Avatar billede beelance Praktikant
15. januar 2009 - 22:33 #3
hej olebole, det jeg efterspørger er ikke den præcise afstand men det der ligner, feks hvis jeg har 20 adresser på hattemagere sprædt ud over sjælland i min db, og får oplyst at en kunde i postnummer 4700 (næstved) ønsker at besøge en af dem, så skal systemet selv beslutte hvem af de 20 hattemagere der er tættest, men ca tættest er fint nok :)
Avatar billede olebole Juniormester
15. januar 2009 - 22:36 #4
Hvis ikke du selv har informationer om postnumrenes geografiske beliggenhed, må du jo slå dem op - f.eks. med GoogleMaps
Avatar billede beelance Praktikant
15. januar 2009 - 23:05 #5
jeg er helt med på den eoretske del sm jeg også skriver i mi oprindelige spørgsmål, men var mere ude efter en snippet til googles API og så vide om det er jeg skal hente 30 afstande hvergang scriptet køres er et problem rent tidsmæssigt, eller om der bare køres 30 threads?
Avatar billede beelance Praktikant
15. januar 2009 - 23:07 #6
hov, beklager mine typos, dette tastatur opfører dig en kende underligt!
Avatar billede andreas13_fam Nybegynder
16. januar 2009 - 14:57 #7
Hvad med at ligge alle postnr. ind i et koordinatsystem og så udregne afstandene fra det ene postnr. til det andet (A^2 + B^2 = C^2).
Koordinatsystemet består så af længdegrader og breddegrader.
Her efter kan du så tage afstanden af (A^2 + B^2 = C^2) og gange den op så den det passer nogen lunde med virkeligheden.
Avatar billede majbom Novice
17. januar 2009 - 08:13 #8
hvorfor ikke bare bruge adressen til at regne med i stedet for postnr, da det, som ole siger, er et rimelig vidt begreb.

du vil få et langt mere præcist resultat, hvis du har butikker tæt på hinanden, kan det også være upræcise resultater
Avatar billede beelance Praktikant
17. januar 2009 - 14:12 #9
jeg har fået det nogenlunde til at virke, men vil gerne ændre koden så den ikke viser kort osv så resultatet loader hurtigere, og så vi kan føre resultat afstands tallet videre i scriptet:

<html>
  <head>
    <title>Google Maps JavaScript API Example: Simple Directions</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=KEY"
      type="text/javascript"></script>

    <script type="text/javascript">

            function display()
            {
                  var miles = directions.getDistance().html;
                  GLog.writeHtml("The distance is " + miles);
            }
    </script>

  </head>

  <body>
    <div id="map_canvas" style="width: 70%; height: 480px; float:left; border: 1px solid black;"></div>
    <div id="route" style="width: 25%; height:480px; float:right; border; 1px solid black;"></div>
    <br/>

    <?

        $address = "denmark, 2200";
        $saddress = "denmark, 4700";
       
        echo '<script type="text/javascript">';
        echo 'map = new GMap2(document.getElementById("map_canvas"));';
        echo 'directions = new GDirections(map, document.getElementById("directions"));';
        echo 'var address = "'.$address.'";';
        echo 'var saddress = "'.$saddress.'";';
        echo 'GEvent.addListener(directions,"load", display);';
        echo 'directions.load("from: " + address + " to: " + saddress);';
        echo '</script>';

    ?>

  </body>
</html>
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